App全域性彈框提示的問題
阿新 • • 發佈:2019-01-27
我們在做開發應用時可能碰到這樣的問題,在App裡某個時刻或倒計時到的時候彈出一個對話方塊,無論當前App處於何種介面都能彈出來,由於AlertDialog或Dialog的顯示需要依附一個確定的Activity,所以當介面切換到其他的Activity介面時就會執行時報錯或彈不出來。
現在就是需要一個系統的提示框一樣,具有全域性性質的提示框。
下面我們來實現它,首先在建立好Dialog後,dialog.show()之前加入如下程式碼:
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
其中dialog為Dialog或AlertDialog型別的物件,然後在AndroidManifest.xml檔案中加入許可權即可:
<!-- 系統彈窗許可權 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
最後補充說明一下,在建立Dialog或AlertDialog傳入的Context就可以為getApplicationContext()了(這個可以在我們自己定義的Application類裡封裝好),不用指定一個Activity,就能實現在任何介面都可以彈窗提示。