[英]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.