因为一些需求,我想在service处理后台运行时候,会弹出对话框,但是对话框的建立需要传入Context的值,我试过传入this,也就是service自己的context,还有 传入getApplicationContext(),都会异常报错,经过查资料才发现,其实context也分好几种,像对话框这样的是要依附于一个Activity的context。那么怎么才能建立一个不依附于activity的全局对话框呢?将我们要弹出的对话框设置为一个系统级警告提示框。
在建立对话框的时候,将context仍然传为this。设置对话框属性,
mdialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
mdialog.show()
就不会报错了,并且成功弹出。
不过在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />