我们都知道在Activity中弹出Dialog很正常,因为Dialog是基于Window弹出。
但是我们经常会遇到这样的需求,需要在service 中弹出一个Dialog对话框,做法有两种
第一种,使用Activity,theme设置成 Dialog 并添加:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);即可实现效果。
第二种,仍然使用Dialog,只不过我们需要添加一些属性:
// 设置成系统级对话框并且在Menifest 中添加对应的权限
mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />