我想從我的班級顯示AlertDialog
。程序流程正常,因爲我能夠正確顯示Toast消息。但是,對話框永遠不會顯示?這是爲什麼發生?我沒有收到日誌中的任何錯誤消息和/或沒有發現應用程序崩潰。這可能是導致此行爲的原因。如何顯示簡單的AlertDialog?
我已經給出了所需的權限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
請參考我的代碼:
if (serverApkVersion > localApkVersion) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Are you sure?")
.create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
Toast.makeText(context, "toast is working, but dialog is not >:(", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "up to date!", Toast.LENGTH_LONG).show();
}
您錯過了一行代碼:alertDialog.create(); –
爲了使用'TYPE_SYSTEM_ALERT',因爲MM,用戶必須明確地允許你的應用程序繪製其他應用程序。這意味着您無法啓動運行時權限,並且不足以在清單中添加此權限。您唯一能做的就是從您的設備啓動系統設置頁面,讓用戶授予此權限。 – Opiatefuchs