我的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
,而其他两个是他们自己的类。
答案 0 :(得分:3)
您可以保留一个全局整数计数器,并在每次AsyncTask启动时(在其onPreExecute()中)递增它,并在onPostExecute()中递减它。当您启动活动时,您可以检查此计数器是否等于零。如果不是 - 那么你知道你已经运行了AsyncTasks。