android 系统全局弹框_Android的Service中弹出窗口解决方法

在Android中,当Service在后台运行时,如需在任意Activity上方显示对话框,可以采取两种方法:一是创建全局提示框(悬浮窗),需要添加SYSTEM_ALERT_WINDOW权限,并设置window类型;二是启动一个设定为对话框主题的Activity。详细实现代码和注意事项已在文中说明。
摘要由CSDN通过智能技术生成

参考资料:

问题:

我们在使用Service时,经常会碰到这样的情况,比如用一个service做下载,此时service不一定在最前端,有可能是其它的Activity,当下载完成时,如何能弹出对话框,让弹出框在当前activity之上。

解决方法:

一、使用全局提示框(悬浮窗)

1、使用系统的Dialog需要在清单文件中添加权限,否则不会显示出来

android.permission.SYSTEM_ALERT_WINDOW

另外,需要注意的是,某些android手机默认是不允许悬浮窗的,因此即便你添加了系统权限,也没有悬浮窗效果的。

2、在alert show() 调用之前添加以下代码:

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

参考代码如下:

Builder builder = new AlertDialog.Builder(this);

builder.setTitle("提示");

builder.setMessage("该下车了");

builder.setNegativeButton("取消", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

}

});

builder.setPositiveButton("确定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值