0

我想知道有没有办法在显示系统对话框(如任务管理器、关闭警报、...)时获取事件。

我可以通过如下意图从我的活动中关闭系统对话框

Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
        sendBroadcast(closeDialog);

但是在我的代码中,我需要知道屏幕上显示了一个系统对话框(它们可以是任务管理器/关闭对话框...),以便我可以调用上面的代码来关闭它。

我搜索了意图过滤器,但没有找到。

4

2 回答 2

0

将以下方法放入您的 Activity 并检查最近的应用程序对话框是否自动关闭

public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        Log.e("Focus debug", "Focus changed !");

        if (!hasFocus) {
            Log.e("Focus debug", "Lost focus !");

            Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            sendBroadcast(closeDialog);
        }
    }

注意:它仅适用于单个活动。不适用于您应用中的所有活动。

于 2013-04-12T06:36:26.317 回答
0

使用广播接收器并将意图放在 onreceive() 方法中。然后在显示警报对话框的位置注册此接收器。然后它会自动禁用设置,最近的应用程序按钮----Nagesh

于 2013-11-18T07:47:22.633 回答