我有一个AsyncTask,在doInBackground方法中启动了一个活动:
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完成之前等待被调用的活动完成。最好的方法是什么?
答案 0 :(得分:3)
你要问的是AsyncTask
的目的,因为AsyncTask
假设与应用程序的其他任务异步运行并在后台完成。因此,如果您想在此任务完成时等待,请不要将其设为AsyncTask
,就像那样简单。
答案 1 :(得分:3)
问题确实是你为什么要这样做?
AsyncTask
的目的是提供一种执行潜在昂贵任务的简单方法,以便它不会阻止UI线程。从您的问题来看,听起来您可以在不使用多线程的情况下轻松完成任务。
您真正想要的是使用Activity
启动startActivityWithResult()
。然后在已启动的活动将控制权返回到onActivityResult()
时启动新活动。