我正在制作一项活动,我计划在五秒钟后显示进度条并转到第二项活动。我使用Thread.sleep来做到这一点。 以下是使用微调器的活动代码。
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);
}
}
我的主要活动只有一个按钮,可以点击此页面。问题是,它显示主要活动五秒钟,然后这个活动非常短暂,然后是第三个活动。在WaitScreen完全加载后如何使线程启动?如您所见,我尝试使用onStart方法来完成这个技巧。或者,如果你能告诉我另一种引入五秒延迟的方法,那也会有所帮助!
答案 0 :(得分:1)
使用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