Android,等待活动在asynctask中完成

时间:2012-05-27 20:27:54

标签: java android multithreading android-asynctask

我有一个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完成之前等待被调用的活动完成。最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

你要问的是AsyncTask的目的,因为AsyncTask假设与应用程序的其他任务异步运行并在后台完成。因此,如果您想在此任务完成时等待,请不要将其设为AsyncTask,就像那样简单。

答案 1 :(得分:3)

问题确实是你为什么要这样做?

AsyncTask的目的是提供一种执行潜在昂贵任务的简单方法,以便它不会阻止UI线程。从您的问题来看,听起来您可以在不使用多线程的情况下轻松完成任务。

您真正想要的是使用Activity启动startActivityWithResult()。然后在已启动的活动将控制权返回到onActivityResult()时启动新活动。