В моем проекте мне нужно отследить изменение фокуса окна.Я выписал результаты для всех этапов деятельности.Когда экран включен, результат выглядит следующим образом:
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onCreate screen state : false
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onStart screen state : false
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onResume screen state : false
02-17 13:50:08.998: DEBUG/InquiryInterface(3829): onPause screen state : true
02-17 13:50:09.178: DEBUG/InquiryInterface(3829): onWindowFocusChanged : false
02-17 13:50:09.228: DEBUG/InquiryInterface(3829): onStop screen state : false
02-17 13:50:09.228: DEBUG/InquiryInterface(3829): onDestroy screen state : false
onWindowFocusChanged - метод, предоставленный классом Activity.И значение, показанное в списке, является входным значением (boolean hasFocus) метода onWindowFocusChanged.
Я использовал следующий код для получения состояния фокуса окна для каждого состояния метода, onCreate, onStart,и т.д.
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onCreate screen state : "
+String.valueOf(this.hasWindowFocus()));
}
Но в документации Android я прочитал: метод onResume () имеет значение Вызывается, когда действие начнет взаимодействовать с пользователем.В этот момент ваша активность находится на вершине стека активности, и пользовательский ввод идет в нее.
Таким образом, я должен получить «True» для фокуса окна в onResume, но нев onPause ().У кого-нибудь есть идея, почему это происходит?