在Android Service中弹出全局Dialog对话框是一个很古老的问题。
很久之前解决过,但没有记录,今天遇到的时候又纠结了会儿。
搜了下资料,千篇一律的解决方法无非是:
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
并增加权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
然并卵。
其实最主要在于在主线程中调用Dialog方法。
Handler handler = new Handler(Looper.getMainLooper());
handler .post(new Runnable() {
@Override
public void run() {
//调用dialog }
});
如此,便可以顺利调出系统全局Dialog。