如何等待活动完全加载?

时间:2013-07-02 14:08:19

标签: android

我正在制作一项活动,我计划在五秒钟后显示进度条并转到第二项活动。我使用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方法来完成这个技巧。或者,如果你能告诉我另一种引入五秒延迟的方法,那也会有所帮助!

1 个答案:

答案 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