Android8.0后台执行限制
为提高设备性能,系统会限制未在前台运行的应用的某些行为。具体而言:
- 在后台运行的应用对后台服务的访问受到限制
- 应用无法使用其清单注册大部分隐式广播
默认情况下,这些限制仅适用于针对O的应用。不过用户可以从Settings屏幕为任意应用启用这些限制,即使应用并不是以O为目标平台。
Android8.0还对特定函数做出了如下变更:
- 如果针对Android8.0的应用尝试在不允许创建其后台服务的情况下使用
startService()
函数,则该函数将引发一个IllegalStateException
. Context.startForegroundService()
函数将启动一个前台服务。即使应用在后台运行,系统也允许其调用Context.startForegroundService().不过,应用必须在创建服务后的5秒内调用改服务的startForegroun()
函数,否则将报ANR
(Application Not Responding)错误。
Android8.0具体行为变更:https://developer.android.com/about/versions/oreo/android-8.0-changes?hl=zh-cn
创建和管理通知渠道
从Android8.0开始,需要为发送的每种不同类型的通知创