Dialog dialog = new Dialog(context);
-
这里的context必须传入activity,如果传入application则会报错没有应用token
-
应用的token一般只有Activity拥有,所以这里只需要用Activity作为Context来显示对话框即可
如果需要传入application,则需要:
- 设置dialog为系统dialog
-
dialog.getWindow().setType(LayoutParams. TYPE_SYSTEM_ERROR );
- 增加权限
<uses-permission android:name = "android.permission.SYSTEM_ALERT_WINDOW" />
注意普通dialog不要设计成单例,持有activity将造成内存泄露。