症状或错误
每当应用程序在后台运行时,它都会消耗一些设备的有限资源,例如RAM。这可能会导致用户体验受损,特别是当用户正在运行资源密集型应用程序时,例如玩游戏或看视频。为了改善用户体验,Android 8.0 (API级别26)对应用程序在后台运行时可以做的事情施加了限制。
许多Android应用程序和服务可能同时运行。例如,用户可以在一个窗口玩游戏,同时在另一个窗口浏览网页,并使用第三个应用程序播放音乐。在任何给定时间运行的应用程序越多,设备资源的负载就越大。如果额外的应用程序或服务在后台运行,那么它会给系统带来额外的负载,这可能会导致糟糕的用户体验——音乐应用程序可能会突然被操作系统关闭。
为了降低出现这些问题的可能性,Android 8.0对用户不直接与应用程序交互时应用程序的功能进行了限制。
Android 8后台执行限制
在后台运行的服务会消耗设备资源,可能会导致糟糕的用户体验。为了缓解这个问题,操作系统对服务施加了一些限制。
当应用程序处于前台时,它可以自由地创建和运行前台和后台服务。当应用进入后台时,它有一个几分钟的窗口它仍然可以创建和使用服务。在该窗口结束时,应用程序被认为是空闲的。此时,系统停止应用程序的后台服务,就好像是应用程序调用了这些服务一样。Service.stopSelf ()方法。
它如何影响安全邮件后台服务?
安全邮件运行后台服务,即,ExchangeService它无限期地运行,并确保邮件同步继续在后台发生。随着移动到targetSdk版本兼容Android 8的安全邮件,这个Exchange服务在几分钟内就会被操作系统杀死(如上所述),一旦应用程序被用户设置为后台。
解决方案
额外的资源
为什么要这么做?
谷歌玩将需要那新的应用程序从2018年8月1日起,至少瞄准Android 8.0 (API级别26)应用程序更新瞄准Android 8.02018年11月1日.因此,在2018年11月1日之后,如果我们没有将targetSdk版本设置为o,我们将无法在google play中更新应用程序。由于更改会影响同步和通知,因此最好的方法是启用基于FCM的推送通知,以获得可靠的同步和通知体验。