0

当我的应用程序在 中加载数据时AsyncTask,它会显示一个启动画面。有时这种数据加载需要不到一秒钟的时间,有时需要更长的时间。但是,如果数据加载首先完成,我想确保启动至少 2 秒,否则等到数据完成。

我的第一个解决方案是使用一个Countdown Timer, 和两个布尔值。当进程启动时,它们的布尔值将设置为 true。该过程完成后,它将设置为布尔值假。然后它会检查对方的布尔值是否为假,以及是否关闭了飞溅。

虽然这可行,但我觉得它过于复杂,并希望找到更有效或更好的解决方案。

4

2 回答 2

0

如果数据加载首先完成,我想确保启动至少 2 秒,否则等到数据完成。

您可以异步启动 Thread(Splash) 和 AsyncTask 以加载数据并在onPostExecute()AsyncTask 上调用新的 Activity。

于 2012-06-16T04:21:42.700 回答
0

你不能用来System.getCurrentTime();完成这个吗?

在 AsyncTask 开始时,调用该方法并存储结果。然后,当任务完成时,再次调用该方法并计算时间值的差异。如果它不大于 2000 毫秒,则有一个 while 循环不断请求系统时间并比较这些值,直到其等于或大于 2 毫秒。

于 2012-06-16T04:23:44.837 回答