1

doInBackgroundメソッド中にアクティビティが起動される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を終了させたい。これを行うための最良の方法は何でしょうか?

4

2 に答える 2

3

アプリの他のタスクと非同期で実行し、バックグラウンドで終了すると仮定するとAsyncTask、あなたが求めているものは、の目的を上回ります。AsyncTaskしたがって、このタスクが終了するまで待ちたい場合はAsyncTask、そのように単純にしないでください。

于 2012-05-27T20:37:38.120 に答える
3

問題は、なぜこれを行うのかということです。

の目的はAsyncTask、UIスレッドをブロックしないように、潜在的にコストのかかるタスクを実行する簡単な手段を提供することです。あなたの質問から、マルチスレッドを使用せずにタスクを簡単に達成できるように思えます。

本当に必要なのは、でを起動することActivityですstartActivityWithResult()。次に、起動されたアクティビティが制御をに戻したときに、新しいアクティビティを開始しますonActivityResult()

于 2012-05-27T20:43:24.013 に答える