Dan*_*lme 8 android android-notification-bar
通常情况下,Android会onPause在您Activity开始被遮挡或隐藏时调用它,然后onStop在它不再显示时调用.在我的游戏中,我暂停了游戏onPause,因此用户在寻找其他地方时不会丢失游戏.
但是,当用户拖动通知栏时,它会覆盖我的Activity,但既onPause不会也不会onStop被调用.文档中似乎没有提到这一点.游戏在背景中剔除,没有人看着它.还有其他一些方法可以告诉我 Activity在发生这种情况时会被遮挡,所以我可以在用户输掉之前暂停游戏吗?我在Android开发者网站上找不到任何相关内容.
Ste*_*mer 15
该onWindowFocusChanged(boolean hasFocus)的Activity应该服务所需的目的.false拖动通知区域时会调用它,并且true一旦区域被拖回,就会调用它.相应的Android文档声明此方法"是用户是否可以看到此活动的最佳指标".它还明确指出在显示"状态栏通知面板"时会触发回调.
重要的是要注意,在其他情况下也会调用此方法.一个很好的例子是显示一个AlertDialog.onWindowFocusChanged甚至在活动本身显示时调用AlertDialog.这可能需要考虑,具体取决于您的游戏是否使用AlertDialogs或其他导致焦点更改的内容.
在类似于此问题中描述的方案中,我们已onWindowFocusChanged成功使用该方法,例如在带有Android 4.4的Nexus 5或带有Android 4.1的Sony Xperia Tablet上.
由于StatusBarManager不是官方 API 的一部分,我发现不太可能有办法检测它。即使使用反射,状态栏类似乎也没有吸引听众的钩子。
如果可行,您可以停用状态栏。否则,我认为你运气不好:(
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |