如何解除Android中的系统对话框?

Ash*_*Ash 40 android

我不得不解雇这个系统Dialog(附在下面).我得到了这个值,但是我无法在Service in Activity中以编程方式解除它.

我的问题是:

  1. 有可能解雇它吗?如果是,请帮助或指导我如何实现它.

在此输入图像描述

Ash*_*Ash 22

请检查一下

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

        if (! hasFocus) {
            Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            sendBroadcast(closeDialog);
        }
    }
Run Code Online (Sandbox Code Playgroud)

它正在我的代码中工作.


My *_*God 20

您可以使用 - ACTION_CLOSE_SYSTEM_DIALOGS

广播操作:当用户操作请求临时系统对话框解除时,广播操作.

public static final String ACTION_CLOSE_SYSTEM_DIALOGS

在API级别1中添加

广播操作:当用户操作请求临时系统对话框解除时,广播操作.临时系统对话框的一些示例是通知窗口阴影和最近的任务对话框.

常量值: "android.intent.action.CLOSE_SYSTEM_DIALOGS"

此信息可以在android开发者网站上找到.

工作实例 -

Android清单 -

<receiver android:name=".SystemDialogReceiver">
            <intent-filter>
                <action android:name="android.intent.
                 action.CLOSE_SYSTEM_DIALOGS" />
            </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

班级档案 -

class SystemDialogReceiver extends BroadcastReceiver {
        private static final String SYSTEM_DIALOG_REASON_KEY = "reason";
        private static final String 
        SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
        @Override
        public void onReceive(Context context, Intent intent) {

            if(intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){
                String dialogType = intent.
                getStringExtra(SYSTEM_DIALOG_REASON_KEY);
                if(dialogType != null && dialogType.
                equals(SYSTEM_DIALOG_REASON_RECENT_APPS)){
                    Intent closeDialog = 
                    new Intent(Intent.
                    ACTION_CLOSE_SYSTEM_DIALOGS);
                    context.sendBroadcast(closeDialog);

                }
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)


Ner*_*een 12

尝试使用以下内容:

sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
Run Code Online (Sandbox Code Playgroud)

  • @Nermeen我已经使用过它,Intent closeDialog = newIntent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); sendBroadcast(closeDialog); 但这不起作用 (3认同)