1

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

4

2 回答 2

3

问题真的是你为什么要这样做?

的目的AsyncTask是提供一种简单的方法来执行可能很昂贵的任务,这样它就不会阻塞 UI 线程。从您的问题来看,听起来您无需使用多线程即可轻松完成任务。

你真正想要的是ActivitystartActivityWithResult(). 然后在启动的活动返回控制权时启动新活动onActivityResult()

于 2012-05-27T20:43:24.013 回答
3

您要问的内容超出了 的目的AsyncTask,因为AsyncTask假设与应用程序的其他任务异步运行并在后台完成。因此,如果您想等待此任务完成,请不要将其设为 a AsyncTask,就这么简单。

于 2012-05-27T20:37:38.120 回答