长期保持 android 服务 运行

keeping an android service running for a long time

我想 运行 android 服务很长时间,即使 phone 已锁定。我已经尝试过 job Intent Service 和 work manager 但它不能长时间工作。 该服务应该定期调用服务器 API。 工作经理的最小间隔是 15 分钟,但我想每分钟调用一次 api 有什么办法吗?

您可以使用的最佳选项是 Workmanager,它是 Jetpack 的一部分,在后台它是 运行Jobscheduler 或根据 api level.Now 关于 long 运行ning 服务到 运行 后台服务您需要做的第一件事是向用户显示通知,但在我的情况下,当设备锁定或睡眠时它仍然停止 mode.So 我那个案例 WAKE_LOCK 帮我唤醒了 device.So 我你可以看看它是否适合你的解决方案也确保你是否使用唤醒锁然后一旦你完成不要忘记释放唤醒锁定。

1) 添加Service.START_STICKY

服务在终止时重新启动。它会告诉系统在可用内存足够时创建服务的最新副本,它会保留状态并从低内存中恢复。

2) 添加 android:persistent="true"

<service android:name="com.myapplication.MyService" android:persistent="true"></service>

不过,您可以使用 WorkManager 进行持久性工作

自版本 2.3.0 起,工作管理器支持长 运行 操作并支持前台通知。

https://developer.android.com/topic/libraries/architecture/workmanager/advanced/long-running

只要您可以在前台 api 工作人员,用户就会看到一条通知,在此期间您的工作人员可以继续在后台工作。