Когда меняется * фокус окна * в Android?

В моем проекте мне нужно уловить изменение фокуса окна. Я отключил результаты для всех этапов деятельности. Когда экран включен, результат будет следующим:

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. И значение, показанное в списке, является входным значением (логическое 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 (). У кого-нибудь есть идея, почему это происходит?

9
задан Mathieu 17 February 2011 в 05:26
поделиться