Как я могу различить OnUserLeaveHint между свертыванием / закрытием и выбором нового действия? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь написать программу в Android-студии и хотел бы обнаружить OnUserLeaveHint. Мой код в настоящее время работает, но он также вызывается, когда я нажимаю кнопку, чтобы перейти к другому виду деятельности.

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

1 Ответ

0 голосов
/ 26 июня 2019

Когда нажата кнопка HOME, это поток:

onUserLeaveHint()
onPause()
onSavedInstanceState()
onStop()

При переходе от действия A к действию B это поток:

onUserLeaveHint()  (of Activity A)
onPause()  (of Activity A)
onApplyThemeResource  (of Activity B)
onCreate  (of Activity B)
onStart (of Activity B)
onResume  (of Activity B)
onSavedInstanceState()  (of Activity A)
onStop()  (of Activity A)

Вы должны понимать, что нет официального способа прослушивания нажатий кнопок HOME. Существует несколько обходных решений, которые, по-видимому, работают в большинстве случаев, но не 100% -ное конкретное решение. Что вы можете сделать, это использовать одно из решений, чтобы прослушать HOME нажмите и включите флаг. Затем используйте это значение флага, чтобы различать, если нажать HOME или изменить активность.

Проверьте это для примера кода: Обнаружение нажатия кнопки домой в Android

...