2012-05-27 55 views
1

完成我有一个的AsyncTask在doInBackground方法中的活动启动:的Android,等待活动的AsyncTask

private class startupTask extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected Void doInBackground(Void... params) { 
     Intent intent = new Intent(StartupActivity.this, LoginConnectorActivity.class); 
     intent.putExtra("account", account); 
     startActivity(intent); 
     return null; 
    } 
} 

我要等待被叫活动让的AsyncTask结束前完成。什么是最好的方法来做到这一点?

回答

3

你所要求的是击败AsyncTask的目的,因为AsyncTask假设与应用程序的其他任务异步运行并在后台完成。所以如果你想在这个任务完成时等待,那么就不要这么简单。

+0

好的,谢谢,我会找到另一种方式。 – Preau

+1

好像你想用'startActivityForResult()'来代替。 –

3

问题的确是为什么你会这样做?

AsyncTask的目的是提供执行潜在的昂贵任务的简单方法,以便它不会阻塞UI线程。从你的问题来看,这听起来像你可以轻松实现你的任务,而无需使用多线程。

你真正想要的是启动ActivitystartActivityWithResult()。然后在已启动活动将控制权返回至onActivityResult()时开始新活动。