Как выполнить фоновое задание, обновляющее интерфейс просмотра Android
В моем приложении для Android у меня есть активность с представлениями.
Например, в начале упражнения или в создании основного макета я хотел бы запустить фоновое задание, которое будет обновлять представление пользовательского интерфейса из основного макета каждые 5 секунд.
Итак, моя стратегия на данный момент состояла в том, чтобы создать Runnable во время создания основного макета, используя метод runOnUiThread моего класса, производный от View.
Поток запускается правильно, но в потоке я хотел бы подождать 5 секунд, чтобы снова дождаться обновления представления пользовательского интерфейса. Моя проблема, когда я использую Thread.sleep, пользовательский интерфейс заблокирован.
Я думаю, Thread.sleep() блокирует весь пользовательский интерфейс, но я не знаю, как я должен сделать, чтобы решить эту проблему.
Поэтому мой вопрос заключается в следующем: как лучше всего реализовать то, что я хочу (возможно, без использования сна)?
3 ответа
Следующая ссылка содержит ответ на все ваши сомнения:
Вы можете использовать таймер, чтобы запланировать повторение TimerTask
, Каждый раз, когда вы хотите обновить пользовательский интерфейс, вы можете публиковать в обработчике, который вы ранее создали в потоке пользовательского интерфейса.
Просто не забудьте cancel
ваш Timer
в onPause
и создать новый Timer
в onResume
,