Android onSystemUiVisibilityChange 永远不会被调用
Posted
技术标签:
【中文标题】Android onSystemUiVisibilityChange 永远不会被调用【英文标题】:Android onSystemUiVisibilityChange is never called 【发布时间】:2014-04-08 12:18:56 【问题描述】:在 Google Nexus 4 (OS 4.4) 上的应用程序中逐字使用来自 https://developer.android.com/training/system-ui/visibility.html 的代码,并且永远不会调用 onSystemUiVisibilityChange 回调。我可能严重不理解要调用它的条件。我在设备上打开另一个处于全屏模式的应用程序,状态栏被隐藏。未调用回调。这仅适用于我自己的应用程序吗?
我真正想做的是检测是否显示状态栏,这样我就知道我可以发布带有我知道用户会看到的股票代码文本的通知。如果他们在全屏应用中,他们将看不到我的股票代码文本,这对我来说并不理想。
【问题讨论】:
【参考方案1】:如果您关闭自己的应用程序并打开另一个应用程序,我认为您不会收到回调,尤其是当此侦听器附加到您的 View
s 之一时,因为您的视图将与窗口分离活动离开前景。即使他们在下面提到的示例用例也表明它应该在您的活动在屏幕上时使用:
让您的 UI 与 系统栏可见性。 例如,您可以使用此侦听器 隐藏和显示动作栏与状态栏隐藏和显示一致 显示。
关于您担心由于隐藏状态栏而无法看到您的应用程序的通知:如果允许任何应用程序隐藏系统 UI,我很难相信这个问题在 Android 框架内没有得到解决。也许您可以让您的通知也让设备振动,以便用户获得其他类型的反馈。
【讨论】:
我喜欢振动的想法。这是个好主意。我的应用程序中有一个 3rd 方 SDK,它也可以全屏显示,我的回调也没有被击中。我有点怀疑这只是为了我的活动。我想我将监听器附加到的 PhoneDecorView 对象已本地化到我的应用程序,嗯?以上是关于Android onSystemUiVisibilityChange 永远不会被调用的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )