Android 在后台无法启动Activity

在Android10及以上版本,系统对后台启动Activity进行了限制。三星和华为手机需要特定权限,如SYSTEM_ALERT_WINDOW。小米手机除了系统权限外,还需"后台弹出界面"特殊权限,但该权限无法直接引导用户开启。目前尚无通用解决方案。
摘要由CSDN通过智能技术生成

需求背景

具体场景:App在后台,接到推送消息后需要启动一个Activity来显示相关信息。


先说系统层面,在Android 10 (API 级别 29) 及更高版本对后台应用可启动 Activity进行了限制。Android10中, 当App的Activity不在前台时,其启动Activity会被系统拦截,导致无法启动。 

实际测试当中,各个手机表现不同。

Android 10 版本:

三星手机:需要添加 

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

华为手机(P20,EMUI10)

同样也是要申请权限,如下图

低于Android 10 版本

小米系列手机:

在获取上面的权限的同时,

小米手机有个特殊的权限,“后台弹出界面(允许应用在后台弹出界面)”,默认是拒绝的,如下图所示

这个权限没有相关的API可以引导用户去设置这个权限,只能靠用户自己去打开,再就是联系小米为自家App打开这个权限

总结

从后台启动Activity,暂时没发现一个通用性好的办法
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值