Android:等待更长时间运行的进程[Timer vs AsyncTask]

时间:2012-06-16 04:16:21

标签: android android-asynctask

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

我的第一个解决方案是使用Countdown Timer和两个布尔值。当流程开始时,他们的布尔值将设置为true。当进程完成时,它将设置它的布尔值为false。然后它将检查对方的布尔值是否为假,如果它是否解雇了飞溅。

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

2 个答案:

答案 0 :(得分:0)

  

我想确保飞溅至少持续2秒钟   数据加载先完成,否则等到数据完成   完成。

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

答案 1 :(得分:0)

你能否使用System.getCurrentTime();来实现这个目标?

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