0

AsyncTasks我的启动画面中有三个Activity下载应用程序数据以进行缓存。我不想真正开始下一个活动,直到一切都task完成。

有没有一种有效的方法来做到这一点?

这是我在以下位置调用我的任务的方式onCreate

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

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

            new MasterTask().execute();

他们一个接一个地被调用。我实际上并没有开始下一个 Activity 直到它到达onPostExecute()in MasterTask。但我相信这是一场赌博,因为其他两个可能还没有完成。

注意: MasterTask是一个内部class,而另外两个是它们自己的类。

4

1 回答 1

3

您可以保留一个全局整数计数器,并在每次 AsyncTask 启动时递增它(在其 onPreExecute() 中)并在 onPostExecute() 中递减它。当你启动你的活动时,你可以检查这个计数器是否等于零。如果不是 - 那么你知道你已经运行了 AsyncTasks。

于 2013-04-29T22:22:21.303 回答