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

Broadcast-Receiver を使用して、onreceive() メソッド内にインテントを配置します。次に、アラート ダイアログを表示する場所にこのレシーバーを登録します。次に、設定、最近のアプリボタンを自動的に無効にします----Nagesh

于 2013-11-18T07:47:22.633 に答える