Я ищу для создания событий, которые запускают изменения пользовательского интерфейса (например, Toast) на Android. Я уже знаю, что вы можете сделать это с помощью метода Handler
объекта postDelayed(runnable, timeDelay)
(see this page for a great example).Android - Временные пользовательские интерфейсы (с паузой/возобновлением)
Вот твист: Мне также нужно уметь приостанавливать и возобновлять обратный отсчет для этих событий. Поэтому, когда пользователь приостанавливает таймер на экране, он также приостанавливает обратный отсчет перед каждым из этих событий.
Один из подходов, который приходил в голову, заключался в создании объекта Handler
на новом Thread
(а не на потоке пользовательского интерфейса) и очереди моих событий с использованием postDelayed
; то я должен приостановить или возобновить выполнение всего Thread
с использованием this method при необходимости. Основная проблема здесь заключается в том, чтобы выяснить, как сделать события запущены в потоке пользовательского интерфейса после их запуска.
Единственный другой способ, о котором я могу думать, - это проверять каждую секунду, что таймер указывает на список всех моих событий (грубой силы) в потоке пользовательского интерфейса, что очень грязно.
Если у кого-то есть мысли по этому поводу или решения, это было бы здорово!
Я только что попробовал новую тему с обработчиком, и это дало мне ошибку «Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare()». Таким образом, похоже, что этот подход выходит из окна. – idolize
Вы назвали Looper.prepare()? http://developer.android.com/reference/android/os/Looper.html – mbafford