我正在开发与Voip& amp; IM(聊天应用程序)。直到Android OS 5.0它运行良好,客户端也没有问题。但是从Android OS 5.1.1起,我们面临着一些问题。
的问题:
测试:
为了测试,我创建了一个计时器任务,每1分钟打印一次日志。因此,当我关闭应用程序时(意味着应用程序处于后台)
直到 android OS 5.0 日志不断打印。
从 android OS 5.1.1 开始进入睡眠模式后,10分钟后日志不会打印。计时器任务正在停止
同样的问题我也面临着我的申请。
在做了一些R& D后,我开始了解打盹模式和应用程序优化。它无论如何与在后台自动运行的停止服务有关。
如果是,有人可以让我知道如何克服这个问题。
答案 0 :(得分:1)
这是google为防止不必要的电池使用而做的新事物。 对于新版本,后台服务受到限制,以延长电池寿命。 android服务消耗与前台运行的应用程序几乎相同。因此,即使应用程序未运行,其服务也可能正在运行并使用内存和电池。
如果您必须使用任何类型的后台处理,请尝试使用Job Scheduler,这可能对您有用。
Job Scheduler对任务进行分组,并根据我们在实现中提供的约束执行后台任务。 这有限制它支持最低API 21
要支持较低版本,您可以使用API 9支持的Firebase JobDispatcher。
我个人更喜欢Firebase JobDispatcher
这个link可以帮助您更多地了解调度程序及其实现。