0

我正在研究与Voip & IM(聊天应用程序)相关的应用程序。直到Android操作系统5.0它工作良好,也没有来自客户端的问题。但是从android OS 5.1.1开始,我们面临着一些问题。从android操作系统自动停止的服务5.1.1

问题:

  • 如果应用程序是在前景,如果设备进入睡眠模式,这是工作好。
  • 如果应用程序在背景并且如果设备在后进入睡眠模式10分钟所有服务都自动停止

测试:

  • 为了测试我创建了一个定时器来打印日志,每1分钟。所以当我关闭应用程序(意味着如果应用程序在后台)

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

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

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

做了一些R & D我知道关于打盹模式和应用程序优化。它是否与停止在后台自动运行的服务有关。

如果是,任何人都可以请让我知道如何解决这个问题。

+0

你使用foregroundService吗? –

+0

打盹模式首次引入棉花糖并在牛轧糖中重新定义。如果您的服务在Android版本5.1中停止。1那么你可能有其他问题。只是检查,你是否使用'START_STICKY'为你服务? – tahsinRupam

+0

@tahsinRupam是的,我使用了START_STICKY。直到5.0它工作良好。我们从5.1.1开始面临这个问题,并且在进入睡眠模式后,测试应用程序计时器任务也不起作用。 – user2384424

回答

1

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

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

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

为了支持较低的版本,你可以使用Firebase JobDispatcher从API支持9

我个人比较喜欢Firebase JobDispatcher

link帮助您了解更多关于调度程序及其实现。