我正在做一个 Activity ,我计划在其中显示一个进度条并在五秒后转到第二个 Activity 。我用 Thread.sleep 来做到这一点。 这是微调器 Activity 的代码。
public class WaitScreen extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.waitscreen);
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
try{
for(int i=0;i<5;i++){
Thread.sleep(1000);
}
Toast.makeText(getApplicationContext(), "Spinner complete!", Toast.LENGTH_LONG).show();
}
catch(InterruptedException e){
}
Intent i = new Intent("emergency.app.NEWACTIVITY");
startActivity(i);
}
}
我的主要 Activity 只有一个按钮,点击后会转到此页面。问题是,它显示主要 Activity 五秒钟,然后这个 Activity 非常短暂,然后是第三个 Activity 。如何在 WaitScreen 完全加载后启动线程?如您所见,我尝试使用 onStart 方法来实现这一目的。或者,如果您能告诉我另一种引入五秒延迟的方法,那也会很有帮助!
最佳答案
使用Handler
发布Runnable
,如下所示:
public class WaitScreen extends Activity {
private Runnable task = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Spinner complete!", Toast.LENGTH_LONG).show();
Intent i = new Intent("emergency.app.NEWACTIVITY");
startActivity(i);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.waitscreen);
Handler handler = new Handler();
handler.postDelayed(task, 5000);
}
}
Runnable
task
将在 5 秒后执行。
http://developer.android.com/reference/android/os/Handler.html
关于android - 如何等待 Activity 完全加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17427785/