Android Service中显示Dialog
2016-05-12 本文已影响982人
Viking_Den
使用背景
有些应用需要在后台执行,当有符合逻辑的Case出现时,需向用户展示一对话框显示提示信息。
具体步骤
第一步:在构建好Dialog对象之后,在show()方法之前加上如下代码:
dialog 加上TYPE_SYSTEM_ALERT第二步:在AndroidManifest.xml中加入如下权限:
在AndroidManifest.xml加上android.permission.SYSTEM_ALERT_WINDOW权限
第三步:如果你的程序是运行在Android6.0或者以上设备,因为权限的管理,要设置该应用可在其他应用的上层显示为允许,故还需添加以下的代码逻辑:
判断当前系统是否是Android 6.0,并且该应用是否已允许在其他应用上层显示 具体的Intent调用举例具体的设置界面如下:
原理说明
如果只在Service中写入常在Activity中使用的创建Alter的代码,运行时是会发生错误的,因为Alter的显示需要依附于一个确定的Activity类。而以上做法就是声明我们要弹出的这个提示框是一个系统的提示框,即全局性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用dialog.show(),就会弹出提示框来。