据观察,当android 4.4设备进入睡眠/待机模式时,应用程序后台服务将被Android系统强制停止。
我尝试了以下方法:
- 开始与START_STICKY一起提供服务
- 将服务作为前台服务
- 使用的工作管理器
但到目前为止没有任何效果。请建议是否可以检查任何其他选项。
为了将应用置于前台,必须从另一个上下文(Service
或BroadcastReceiver
(调用startActivity()
。仅从活动中调用startActivity()
不会将应用置于前台。
您不需要Intent
中的ACTION
和CATEGORY
,但确实需要设置Intent.FLAG_ACTIVITY_NEW_TASK
。
您是否尝试过在后台服务中使用唤醒锁。
从文档:
如果您需要保持 CPU 运行以完成一些工作 在设备进入睡眠状态之前,您可以使用电源管理器系统 称为唤醒锁的服务功能。唤醒锁允许应用。 以控制主机设备的电源状态。
注意:使用唤醒锁会导致电池耗尽,请通过 文档并使用替代方法,例如工作管理器(如果这有效( 可以推迟。
引用:
https://developer.android.com/training/scheduling/wakelock
https://developer.android.com/reference/android/os/PowerManager.WakeLock.html