服务从Android OS 5.1.1自动停止

时间:2017-07-04 05:26:38

标签: android android-service voip android-5.1.1-lollipop android-doze

我正在开发与Voip& amp; IM(聊天应用程序)。直到Android OS 5.0它运行良好,客户端也没有问题。但是从Android OS 5.1.1起,我们面临着一些问题。

的问题:

  • 如果应用程序位于前景,并且设备进入睡眠模式,则说明效果正常。
  • 如果应用处于后台,并且设备在 10分钟后进入睡眠模式,则所有服务都会自动停止

测试:

  • 为了测试,我创建了一个计时器任务,每1分钟打印一次日志。因此,当我关闭应用程序时(意味着应用程序处于后台)

  • 直到 android OS 5.0 日志不断打印。

  • android OS 5.1.1 开始进入睡眠模式后,10分钟后日志不会打印。计时器任务正在停止

同样的问题我也面临着我的申请。

在做了一些R& D后,我开始了解打盹模式和应用程序优化。它无论如何与在后台自动运行的停止服务有关。

如果是,有人可以让我知道如何克服这个问题。

1 个答案:

答案 0 :(得分:1)

这是google为防止不必要的电池使用而做的新事物。 对于新版本,后台服务受到限制,以延长电池寿命。 android服务消耗与前台运行的应用程序几乎相同。因此,即使应用程序未运行,其服务也可能正在运行并使用内存和电池。

如果您必须使用任何类型的后台处理,请尝试使用Job Scheduler,这可能对您有用。

Job Scheduler对任务进行分组,并根据我们在实现中提供的约束执行后台任务。 这有限制它支持最低API 21

要支持较低版本,您可以使用API​​ 9支持的Firebase JobDispatcher

我个人更喜欢Firebase JobDispatcher

这个link可以帮助您更多地了解调度程序及其实现。