在我的项目中,我需要捕捉窗口焦点的变化。我已经注销了活动所有阶段的结果。当屏幕亮起时,结果如下:
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 类提供的方法。列表中显示的值是 onWindowFocusChanged 方法的输入值(boolean hasFocus)。
我使用以下代码来获取方法的每个状态(onCreate、onStart 等)的窗口焦点状态。
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onCreate screen state : "+String.valueOf(this.hasWindowFocus()));
}
但在 Android 文档中,我读到:方法 onResume() 是当活动开始与用户交互时调用。此时,您的活动位于活动堆栈的顶部,用户输入将进入其中。
因此,通过这种方式,我应该在 onResume 中获得“True”窗口焦点,但在 onPause() 中则不然。任何人都知道为什么会发生这种情况?
我的理解和你说的相反。 onResume() 在您的 Activity 获得焦点之前被调用,而 onPause 在它失去焦点之前被调用。我本可以发誓我在某个地方这样读过它,但我似乎找不到我在哪里看到它活动生命周期文档 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)