Android 后台服务无法打开指定包名App

最近写管控服务app的时候,有个需求要在前台Service服务中吊起某包名App。
吊起方法如下:

 val intent = packageManager.getLaunchIntentForPackage("com.xingin.xhs")
            if (intent != null) {
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                startActivity(intent)
            }

方法2 用AndroidUtilCode的方法:
AndroidUtilCode

AppUtils.launchApp(appPackage)

两个方法是没有问题的,如果有前台页面都是可以调用起来。通过查阅资料得知:

Android O(API 级别 26)及更高版本对在后台的应用启动新的 Activity 有所限制。即使你的服务是前台服务,如果你的应用当前对用户不可见(即你的应用在后台),调用 startActivity() 方法仍然可能失败。 Android 10 (API 级别 29)及更高版本更是增加了这方面的限制。
这是由于 Android 为了提高用户体验和设备性能,在后台应用对用户行为的影响方面做了限制。
所以,总体建议,避免从后台服务启动 Activity,因为这往往会给用户带来不好的体验。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值