Android后台启动Activity正确姿势
2023-09-19 13:13:07
从上篇的博文中大家可以知道,在Android原生机型上可以正常地从后台直接启动一个Activity界面,但是很多用户反馈在部分机型上却不行,主要还是由于厂商对系统做了修改,导致原来的启动方式不再起作用。
按照本文指导,你将能够解决各主流机型从后台启动Activity的限制,从而使得所有用户都能使用Android原生的启动方式,并且达到统一的体验。
解决方案
1. Android 9
1.1 华为
在Android 9版本中,如果项目中没有任何权限请求,那么App是无法直接从后台启动的。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
1.2 小米
在Android 9版本中,小米系统默认是没有启动白名单的,因此我们可以在App中添加一些代码来进行设置。
在Application的onCreate()方法中添加以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null && !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
}
1.3 OPPO
在Android 9版本中,OPPO系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
1.4 Vivo
在Android 9版本中,Vivo系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
2. Android 10
2.1 华为
在Android 10版本中,华为系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
2.2 小米
在Android 10版本中,小米系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
2.3 OPPO
在Android 10版本中,OPPO系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
2.4 Vivo
在Android 10版本中,Vivo系统对后台启动做了限制,如果App想要从后台直接启动,那么需要先打开设置,然后允许App在后台运行。
我们可以配置Manifest文件,加上请求权限的代码,此时App就可以从后台直接启动。
总结
通过以上方法,我们就可以解决各主流机型从后台启动Activity的限制,从而使得所有用户都能使用Android原生的启动方式,并且达到统一的体验。