Android: Почему событие не может быть опубликовано и что вам делать, если этого не произойдет?

#android

#Android

Вопрос:

Функции отправки событий Android * возвращают логическое значение, которое сообщает вам, были ли они успешно отправлены в очередь сообщений потока обработчика или нет. Каков правильный ответ на невозможность опубликовать событие? Повторная публикация, пока она не сработает, кажется плохой идеей. Спящий режим и повторная публикация также кажутся плохой идеей. Нужно ли вообще проверять это в общем случае?

 Handler h = new Handler();
Runnable r = new Runnable() { void run(){doStuff}}

    if(!h.post(r){
      //What Should go here????
    }
 

* post, postDelayed, postAtTime

Ответ №1:

Как указано в документации, post операция может возвращать false, если завершается цикл, который обрабатывает очередь сообщений.

То есть, если оно возвращает false, все, что вы опубликовали, не будет обработано. Итак, проверив значение false, вы можете принять меры, если вам нужно.

Но, как правило, вы этого не делаете, поэтому, если для вас не важно обрабатывать это последнее post , вы можете проигнорировать проверку.

Ответ №2:

в качестве альтернативы вы можете просто сохранить локальное логическое значение или что-то в качестве стаба на потом и игнорировать его сейчас в onStop() and onDestroy () и onPause()