0

キャッシュ用にアプリ データをダウンロードするAsyncTasksスプラッシュ画面に3 つありました。すべてが完了Activityするまで、次のアクティビティを実際に開始したくありません。task

これを行う効果的な方法はありますか?

でタスクを呼び出す方法は次のonCreateとおりです。

            TrendingTask task = new TrendingTask(SplashActivity.this);
            task.execute();

            TrendingWatchingTask task2 = new TrendingWatchingTask(
                    SplashActivity.this);
            task2.execute();

            new MasterTask().execute();

それらはすべて次々に呼び出されます。onPostExecute()inに到達するまで、実際には次のアクティビティを開始しませんMasterTask。しかし、これは賭けだと思います。なぜなら、他の 2 つが完成していない可能性があるからです。

注: MasterTaskはインナーですがclass、他の 2 つは独自のクラスです。

4

1 に答える 1

3

グローバル整数カウンターを保持し、AsyncTask が (その onPreExecute() で) 開始するたびにインクリメントし、onPostExecute() でデクリメントすることができます。アクティビティを起動すると、このカウンターがゼロに等しいかどうかを確認できます。そうでない場合は、AsyncTasks が実行されていることがわかります。

于 2013-04-29T22:22:21.303 に答える