android - 显示系统面板时回调到 Android 应用程序

标签 android callback system panel

我正在 HTC One X stock 4.0.3 ROM 上运行我的测试应用程序。

当我长按“电源”时,我会看到一个系统面板“电话选项”,我可以在其中选择“关机”、“飞行模式”或“重启”。 事实上,这就是我们在任何 Android 手机上所拥有的。

这里的问题是我的 Activity 没有收到“onPause”回调。而且我无法停止线程和其他停止前的工作人员。

是否可以在任何系统面板(取消)激活时进行回调?

谢谢。

最佳答案

广播 ACTION_CLOSE_SYSTEM_DIALOGS 将在弹出任何系统对话框之前抛出。所以你可以使用

为这个 Intent 注册一个接收者
registerReceiver(reciever, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

此 Intent 有一个标志 FLAG_RECEIVER_REGISTERED_ONLY,因此如果您使用 Manifest 文件注册,则无法接收此广播。所以你将不得不使用 registerReciever。这也可能在其他情况下抛出。只能在激活系统对话框时使用,不确定是否停用

关于android - 显示系统面板时回调到 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825417/

相关文章:

c++ - 使用指向非静态成员函数的指针实现回调

android - 在 Android 中启动时启动 apk

java - 无法将上下文从 onpostexecute 传递到共享首选项

java - Seam Hibernate 为两个单独的线程提供相同的 EntityManger 实例

javascript - Javascript 回调模式示例 - 它真的更高效吗?

macos - 如何在 Mac 上启动新应用程序?

android - isKeyguardLocked 与 isDeviceLocked

java - 在 View 旁边显示带有自定义数字键盘的弹出窗口

system - 如何像 bochs 一样获取 qemu 重启原因

tsql - 如何查看/编写系统 View 的脚本定义?