我想从我的班级显示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