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