При использовании метода onPause в Android SDK этот код запускается всякий раз, когда операция перерисовывается (например, вращение устройства). Есть ли способ определить, действительно ли действие приостановлено (например, если появилось новое окно), или если активность была фактически перерисована?
Фактически, если вы посмотрите на жизненный цикл активности, когда устройство повернуто, активность перезапускается, поэтому после onPause()
активность проходит через полный цикл перезапуска (onStop()
и onRestart()
также называются), поэтому в этом случае вы можете установить некоторое значение в зависимости от того, какие функции были вызваны, или проверить ориентацию устройства.
Также, когда активность переходит в фоновый onPause()
, onPause()
, и когда действие больше не отображается пользователю, onStop()
, который по определенным причинам может проверить это, установив некоторую переменную. Для полного понимания изучите жизненный цикл активности (Alternate Link)
Но зачем вам нужно знать, что произошло с этой деятельностью? Переопределяя соответствующие функции и обеспечивая надлежащие ресурсы компоновки, вам не нужно знать, что произошло в большинстве случаев.
Для ориентации вы также можете получить ориентацию, используя метод getRotation
.