1

我正在进行一项活动,我计划在其中显示进度条并在五秒钟后移至第二个活动。我使用 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 方法来解决问题。或者,如果您能告诉我另一种引入 5 秒延迟的方法,那也会很有帮助!

4

1 回答 1

0

使用 aHandler发布 a 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

于 2013-07-02T14:14:24.803 回答