Android Service中显示Dialog

作者: Viking_Den | 来源:发表于2016-05-12 09:25 被阅读982次

    使用背景

    有些应用需要在后台执行,当有符合逻辑的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

    相关文章

      网友评论

      • snowyeti:题主,想问个问题哈,你的 onResume 哪来的,service里面没有这个方法的

      本文标题:Android Service中显示Dialog

      本文链接:https://www.haomeiwen.com/subject/tdourttx.html