Android Service中显示Dialog

使用背景

有些应用需要在后台执行,当有符合逻辑的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(),就会弹出提示框来。

参考资料


Alert dialog from Android service

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容