버튼을 클릭하면 레이아웃이 표시되는 방식을 시도하고 있습니다. 몇 초 후에 새로운 활동/레이아웃을 표시하고 싶습니다.몇 초 후 화면 전환하기 (스레드/의도) - Android
어떻게해야합니까?
버튼을 클릭하면 레이아웃이 표시되는 방식을 시도하고 있습니다. 몇 초 후에 새로운 활동/레이아웃을 표시하고 싶습니다.몇 초 후 화면 전환하기 (스레드/의도) - Android
어떻게해야합니까?
나는 UI 스레드에서 대기하지 제안합니다.
작업에 Handler
을 사용할 수 있습니다. run
메서드는 Handler
이 생성 된 동일한 스레드에서 실행됩니다.
//delay in ms
int DELAY = 1000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(intent);
}
}, DELAY);
지연 중에 UI가 어떤 조치를 취해야합니까? 그렇지 않은 경우 버튼의 처리기 안에
Thread.sleep(timeToWaitInMilliseconds);
을 사용할 수 있습니다. 이렇게하면 UI 스레드가 몇 초 동안 중지되지만 UI가 지연되는 동안 "고정"됩니다.
약간 더 나은 옵션은 새 스레드 인 AsyncTask와 Handler를 사용하고 새 작업 열기를 지연시키고 처리기에서 새 활동을 여는 시간 동안 해당 스레드를 잠자기 상태로 만드는 것입니다.
asynctask는 사용자가 "지연"중에 UI와 상호 작용할 수 있으므로 귀하의 경우에 대해 조금 더 좋습니다. 여기 AsyncTasks에
더 많은 정보는 :
http://developer.android.com/reference/android/os/AsyncTask.html
방금 제안을 시도했습니다. 버튼을 클릭하면 레이아웃을 보도록 요청하고 있습니다. 5000 밀리 초 동안 지연하라고 요구 한 다음 새로운 활동으로 이동하십시오. 무엇인가의 이유로 5 초 동안 지연되고, 레이아웃을 초 단위로 플래싱 한 다음 새 활동으로갑니다. – user1274830
나는 비슷한 것을했는데, "지연 후 뭔가를하기"를 원할 때, 클래스 호출을 시도 할 때 좋아하지 않는다. 의도 newClass = 새로운 의도 (this, ClassName.class); this.startActivity (newClass); – user1274830
this.startActivity (..)를 호출하지 마십시오. 'this'를 생략하고 startActivity (..)를 호출하십시오. – thaussma
Elipse가이 코드 라인을 좋아하지 않습니다. Intent class = new Intent (this, Failed.class); - 내가 그것을 만들고 싶다 - 의도 클래스 = 새로운 의도(); - 그런데 어떤 수업을 해야할지 모르겠습니다. 매우 실망합니다. – user1274830