当我的应用程序在 中加载数据时AsyncTask
,它会显示一个启动画面。有时这种数据加载需要不到一秒钟的时间,有时需要更长的时间。但是,如果数据加载首先完成,我想确保启动至少 2 秒,否则等到数据完成。
我的第一个解决方案是使用一个Countdown Timer
, 和两个布尔值。当进程启动时,它们的布尔值将设置为 true。该过程完成后,它将设置为布尔值假。然后它会检查对方的布尔值是否为假,以及是否关闭了飞溅。
虽然这可行,但我觉得它过于复杂,并希望找到更有效或更好的解决方案。
当我的应用程序在 中加载数据时AsyncTask
,它会显示一个启动画面。有时这种数据加载需要不到一秒钟的时间,有时需要更长的时间。但是,如果数据加载首先完成,我想确保启动至少 2 秒,否则等到数据完成。
我的第一个解决方案是使用一个Countdown Timer
, 和两个布尔值。当进程启动时,它们的布尔值将设置为 true。该过程完成后,它将设置为布尔值假。然后它会检查对方的布尔值是否为假,以及是否关闭了飞溅。
虽然这可行,但我觉得它过于复杂,并希望找到更有效或更好的解决方案。
如果数据加载首先完成,我想确保启动至少 2 秒,否则等到数据完成。
您可以异步启动 Thread(Splash) 和 AsyncTask 以加载数据并在onPostExecute()
AsyncTask 上调用新的 Activity。
你不能用来System.getCurrentTime();
完成这个吗?
在 AsyncTask 开始时,调用该方法并存储结果。然后,当任务完成时,再次调用该方法并计算时间值的差异。如果它不大于 2000 毫秒,则有一个 while 循环不断请求系统时间并比较这些值,直到其等于或大于 2 毫秒。