AlertDailog在没有Activity依附的情况下,如何显示

因为AlertDailog在显示时需要一个指定的Activity去依附

AlertDialog.Builder builder = new Builder(MainActivity.this);

当从BroadcastReceiver这类的元素中生成AlertDailog时,不一定有明确的Activity提供给我们

如下解决方案:

AlertDialog.Builder builder = new Builder(context);

alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

然后在manifest里面注册权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>

原理其实就是依附于系统上,直接在任何地方情况下都能弹这个Dailog.

猜你喜欢

转载自nullpointsun.iteye.com/blog/2337850