Как выполнить фоновое задание, обновляющее интерфейс просмотра Android

В моем приложении для Android у меня есть активность с представлениями.

Например, в начале упражнения или в создании основного макета я хотел бы запустить фоновое задание, которое будет обновлять представление пользовательского интерфейса из основного макета каждые 5 секунд.

Итак, моя стратегия на данный момент состояла в том, чтобы создать Runnable во время создания основного макета, используя метод runOnUiThread моего класса, производный от View.

Поток запускается правильно, но в потоке я хотел бы подождать 5 секунд, чтобы снова дождаться обновления представления пользовательского интерфейса. Моя проблема, когда я использую Thread.sleep, пользовательский интерфейс заблокирован.

Я думаю, Thread.sleep() блокирует весь пользовательский интерфейс, но я не знаю, как я должен сделать, чтобы решить эту проблему.

Поэтому мой вопрос заключается в следующем: как лучше всего реализовать то, что я хочу (возможно, без использования сна)?

3 ответа

Следующая ссылка содержит ответ на все ваши сомнения:

Android безболезненный Threading

Вы можете использовать таймер, чтобы запланировать повторение TimerTask, Каждый раз, когда вы хотите обновить пользовательский интерфейс, вы можете публиковать в обработчике, который вы ранее создали в потоке пользовательского интерфейса.

Просто не забудьте cancel ваш Timer в onPause и создать новый Timer в onResume,

Также рассмотрите возможность использования AsyncTask с таймером. Вам не нужно беспокоиться об обработчиках таким образом

Другие вопросы по тегам