第一种方法:利用系统的dialog
在dialog.show()语句前加入:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
其中Dialog使用的Context必须为ApplicationContext(即getApplicationContext())。
然后在AndroidManifest.xml中加入权限:android.permission.SYSTEM_ALERT_WINDOW。
注意:在6.0及以上系统中需要用户授权该权限(参考https://www.jianshu.com/p/2746a627c6d2)
第二种方法:使用WindowManager,直接添加view
可参考 http://www.cnblogs.com/mythou/p/3244208.html#3757468 同时也需添加权限:android.permission.SYSTEM_ALERT_WINDOW
第三种方法:使用一个透明的Activity当背景,在该Activity上弹出对话框
可以给Activity设置主题 android:theme="@android:style/Theme.Translucent" 为透明背景