#android
#Android
Вопрос:
Я столкнулся со сценарием, в котором isFinishing() возвращал false, но действие все еще завершалось.
В сценарии есть Activity Abc, который содержит кнопку. Когда пользователь нажимает на кнопку, запускается действие Xyz.
Теперь в Abc activity я нажал кнопку на нем и кнопку «НАЗАД» на телефоне почти одновременно, при этом кнопка «НАЗАД» должна быть через несколько миллисекунд после нажатия кнопки на Abc. Я получил следующее сообщение в журнале:
09-30 17:32:41.424 I/Abc(20319): [onPause] com.example.Abc@40605928
09-30 17:32:41.424 D/Abc(20319): In onPause, this.isFinishing()=false
09-30 17:32:41.464 I/Xyz(20319): [onCreate] com.example.Xyz@405caf68
09-30 17:32:41.604 I/Xyz(20319): [onStart] com.example.Xyz@405caf68
09-30 17:32:41.644 I/Xyz(20319): [onResume]com.example.Xyz@405caf68
09-30 17:32:41.824 I/Abc(20319): [onStop] com.example.Abc@40605928
09-30 17:32:41.884 D/Abc(20319): [onDestroy] com.example.Abc@40605928
Из приведенного выше журнала мы видим, что активность Abc была уничтожена, даже когда isFinishing() вернул false в onPause() .
Код, который у меня есть в onPause ():
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "[onPause] " this);
Log.d(TAG, "In onPause, this.isFinishing()=" this.isFinishing());
}
Это ошибка в Android?
Спасибо.
Ответ №1:
Я думаю, что это ошибка в ОС Android. Когда действие находится в onPause (), ОС должна игнорировать нажатие на кнопку «НАЗАД».