2012-06-16 3 views
0

Когда мое приложение загружает данные в AsyncTask, в нем отображается заставка. Иногда эта загрузка данных занимает менее секунды, а иногда занимает гораздо больше времени. Тем не менее, я хочу убедиться, что всплеск будет продолжаться не менее 2 секунд, если загрузка данных закончится первой или иначе дождитесь, пока данные будут выполнены.Android: Ждите продолжения работы [Timer vs AsyncTask]

Моим первым решением было использовать Countdown Timer и два значения типа boolean. Когда процессы начнутся, их логические значения будут установлены в true. Когда процесс был выполнен, он установил бы его логическое значение false. Затем он будет проверять, было ли логическое значение другого ложным, и если он отклонил всплеск.

Хотя это работает, я чувствую, что это слишком сложно и надеялось найти более эффективное или лучшее решение.

ответ

0

Я хочу, чтобы убедиться, что всплеск составляет не менее 2 секунд, если загрузка данных закончила первую, или в противном случае ждать, пока данные не был сделаны .

Вы можете асинхронное начать тему (Всплеск) и AsyncTask для загрузки данных и вызвать новую активность на onPostExecute() вас AsyncTask.

0

Не могли бы вы использовать System.getCurrentTime(); Чтобы выполнить это?

В начале AsyncTask вызовите этот метод и сохраните результат. Затем, когда задача завершается, снова вызовите метод и вычислите разницу в значениях времени. Если он не превышает 2000 миллисекунд, у вас есть цикл while, который непрерывно запрашивает системное время и сравнивает значения до тех пор, пока не будет равно или больше 2 миллисекунд.

Смежные вопросы