如何在 Android 4.4 设备进入待机模式后恢复后台服务?

3

观察到当安卓4.4设备进入睡眠/待机模式时,应用程序的后台服务会被安卓系统强制停止。

我尝试了以下方法:

  1. 使用START_STICKY启动服务
  2. 将服务设置为前台服务
  3. 使用Work Manager

但是目前还没有任何作用。请建议是否可以检查其他选项。

2个回答

0
为了将您的应用程序置于前台,您必须从另一个上下文(或者是一个服务或广播接收器)调用startActivity()。仅从活动内部调用startActivity()不会将您的应用程序置于前台。
在您的Intent中,您不需要ACTIONCATEGORY,但需要设置Intent.FLAG_ACTIVITY_NEW_TASK

感谢您抽出时间回答这篇文章。请再次阅读我的问题,因为您的答案似乎与我的问题无关。 - Sandeep Kumar

0

你是否尝试在后台服务中使用唤醒锁。

来自文档:

如果您需要在设备进入睡眠状态之前保持CPU运行以完成某些工作,则可以使用PowerManager系统服务功能称为唤醒锁。唤醒锁允许您的应用程序控制主机设备的电源状态。

注意:使用唤醒锁会导致电池耗电,请查阅文档并使用其他替代方案,例如WorkManager,如果此工作可以延迟处理。

参考资料:

https://developer.android.com/training/scheduling/wakelock

https://developer.android.com/reference/android/os/PowerManager.WakeLock.html


感谢抽出时间回答这篇文章。我也尝试了唤醒锁,但也没有起作用。 让我解释一下我的应用程序的确切行为。我的单屏应用程序是车载头部单元的OBU应用程序,具有始终需要运行的后台服务。因此,即使应用程序的进程被杀死或设备重新启动,我的应用程序的后台服务也应该保持运行状态,这非常有效。但是,在30秒的空闲状态后,当头部单元进入睡眠模式时,会强制停止我的应用程序的后台服务。这适用于任何非系统后台服务。 - Sandeep Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接