Android8.0行为改变

Android8.0行为改变

除了新性能,Android 8.0(API 26)引入了一系列系统API改变了一些行为。本文介绍了一些关键改变。

大多数改变影响所有应用,不管他的目标API。然而,有些改变只影响目标Android 8.0的应用。清晰起见,本文分成两部分:对所有应用的改变和目标API为Android 8.0的应用的改变。

对所有应用的改变

因为Android 8.0(API26)引入了电池性能提高的功能,当应用进入缓冲状态并没有活动的组建时,系统释放应用持有的任何wakelock。

除此之外,为提高性能,系统对一些不在前台运行的应用有些限制。具体来说:

  • 不在前台运行的应用在调用后台服务是有些限制。
  • 应用不再能够在Manifest里注册大部分隐式广播(即没有明确指定发给哪个app的广播)。

默认情况这些限制只应用在目标API是O的应用,但是用户可以在设置里把目标应用不是O的应用也打开限制。

Android 8.0还对一些方法作了改变:

  • 对于目标API设置为O的应用,如果调用startService(),但是目标服务不支持创建后台服务,调用将会抛出IllegalStateException。
  • 新的Context.startForegroundService()方法启动一个前台服务。即时应用在后台,也可以调用Context.startForegroundService()。但是应用必须在服务启动5秒钟之内调用startForeground()方法。

未完

猜你喜欢

转载自blog.csdn.net/yubing1015/article/details/85262948