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



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

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

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

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

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

你能不用System.getCurrentTime();来实现这一点吗?

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

最新更新