繁体   English   中英

Android 以编程方式关闭系统对话框

[英]Android dismiss a system dialog programmatically

我想以编程方式关闭系统生成的警报对话框。 我已经尝试了这里提供的所有解决方案(stackoverflow),但它似乎不起作用。 是大多数地方都接受的答案,但它只会关闭通知面板和最近的任务菜单。

我已经在操作系统版本为 4.0.3、4.2.2、4.4.2 和 5.1.1 的设备上对其进行了测试,它在所有设备上都具有相同的行为。 有些应用程序实际上可以关闭所有系统对话框(Mubble)。 有人可以建议它是如何完成的吗?

谢谢

对此的通常答案是

sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

但是,这并不适用于所有情况。 特别是,在某些设备上,它不适用于“最近的应用程序”列表。

解决方案是检测您的应用何时失去焦点,然后将您的应用移至最前面。 请注意,您的应用需要android.permission.REORDER_TASKS权限才能执行此操作。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        this.keepFocus = true;
    }
    if (! hasFocus && this.keepFocus) {
        ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
        am.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME );
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM