簡體   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