android 应用级的Dialog需要依附于一个Activity才能显示,如果仅仅传参context,运行会导致应用崩溃crash。Service 以及 BroadcastReceiver中无法提供Activity对象,那么需要以下代码才能显示:
1.首先添加权限 到AndroidMenifest.xml中:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>
2.Dialog对象调用show方法之前,设置以下window的type ,显示的级别为系统级的对话。
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);