在BroadcastReceiver,当我们创建一个AlertDialog并show出来的时候,出现了下面的错误:
12-24 14:10:57.025: E/AndroidRuntime(17600): java.lang.RuntimeException: Unable to start receiver com.ustc.broadcastreceiver.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
下面的方法可以解决:
第一步:
在调用show方法之前,设置下面的属性:
dialog.getWindow()
.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
再次运行,发现程序又挂了:
12-24 14:15:22.793: E/AndroidRuntime(17979): java.lang.RuntimeException: Unable to start receiver com.ustc.broadcastreceiver.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@535ab190 -- permission denied for this window type
这个一看就知道了,权限拒绝,需要添加权限:
第二步:
在清单文件