所有AsynTask完成后如何完成Activity

时间:2013-04-29 21:41:08

标签: android android-asynctask android-activity

我的Splash屏幕AsyncTasks中有三个Activity,用于下载应用数据以进行缓存。在所有task完成之前,我不想实际开始下一个活动。

有没有有效的方法呢?

以下是我在onCreate中调用我的任务的方式:

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

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

            new MasterTask().execute();

他们都被一个接一个地召唤出来。我实际上并没有开始下一个活动,直到它到达onPostExecute()中的MasterTask。但我相信这是一场赌博,因为其他两个可能都没有完成。

注意:MasterTask是内部class,而其他两个是他们自己的类。

1 个答案:

答案 0 :(得分:3)

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