Android: Как узнать, завершил ли runnable выполнение и готов ли к выполнению в следующий раз.?

#android #android-layout #android-intent #android-activity #android-fragments

#Android #android-layout #android-намерение #android-активность #android-фрагменты

Вопрос:

Может показаться запутанным объяснить мне, чего я хочу, но позвольте мне попробовать. Я внедряю runnable. Запуск runnable в uithread. использование обработчика для последующего выполнения с 60000 миллионами. Для меня это работает нормально. но поскольку у меня есть активность в чате, пользователь не может подождать минуту, чтобы получить сообщение. Итак, я изменил сообщение, отложенное на 5000 милисов. Теперь он извлекает записи и отображает записи дважды при первом выполнении. Это потому, что я передаю идентификатор, который обновляется в соответствии с последней извлеченной записью.

Для просмотра теста. 1. Если я выполняю код с задержкой отправки 5000, он дважды добавляет данные в listview. поскольку идентификатор не обновляется из-за того, что первое выполнение runnable не завершено, а тем временем запущен другой экземпляр. Можем ли мы узнать, завершил ли runnable свое первое выполнение или что-то вроде того, чтобы поместить runnable в очередь, чтобы он использовал последние данные.

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

Комментарии:

1. Вы можете использовать AsyncTask, который имеет метод onPostExecute, чтобы вы знали, выполнено ли выполнение уже. Или вы также можете использовать intent .

2. Спасибо @KaHeL, я получил то же самое, что вы описали. Я ввожу переменную, которая будет проверять, завершено ли выполнение (isfinished), перед каждым запуском runnable, если isfinished имеет значение false, это не позволит выполнить следующее выполнение. и в asynchtask в конце всего выполнения (в методе post execute) Я установил для isfinished значение true. Еще раз спасибо.