0

当收到 android.intent.action.BOOT_COMPLETED 广播时,我的应用程序有一个由 BroadcastReceiver 启动的活动。

该活动应在 Keyguard(安全)上全屏显示。Activity 使用 Theme.NoTitleBar.Fullscreen 主题,在应用程序清单和 WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 中设置以将 Keyguard 放在后面。

我不想以任何方式更换或禁用键盘保护。该活动应该只显示有关设备的一些诊断信息,并且在用户关闭它之前应该保持活动状态。

因此,设备启动,键盘保护通常会出现,几秒钟后的活动也会启动。活动在没有标题栏的全屏模式下很好地显示在键盘保护上。这一切在我的索尼和三星测试设备上运行良好。

今天我在 LG G2 设备(Android 4.4.2)上测试这个应用,发现一个奇怪的问题。问题是全屏活动被解除(暂停)并再次启动键盘保护。

我花了半天时间浏览代码并试图找出导致这种行为的原因。最后我注意到每次标题栏中显示系统通知时我的活动都会被取消。在我的情况下,通知是“电池已满”和“拔下电源以节省电池”。我没有机会测试,但其他通知可能也会发生同样的情况。

有没有办法抑制系统通知或忽略,所以全屏活动不会暂停?

4

1 回答 1

0

试试下面的代码片段,

  Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
  this.sendBroadcast(intent);

当用户操作应请求关闭临时系统对话框时,会广播此消息。临时系统对话框的一些示例是通知窗口阴影和最近的任务对话框

请参阅ACTION_CLOSE_SYSTEM_DIALOGS

于 2015-06-29T06:51:52.203 回答