fix: invoke heartbeat callback in HeartbeatWorker.doWork()
The onHeartbeat callback passed to scheduleHeartbeat() was never invoked because HeartbeatWorker.doWork() returned success without calling it. Fix: Store callback in companion object and invoke it when worker runs.
This commit is contained in:
parent
5cdbb2be08
commit
8ba3a017cd
1 changed files with 3 additions and 0 deletions
|
|
@ -15,6 +15,7 @@ class HeartbeatScheduler(private val context: Context) {
|
|||
private val workManager = WorkManager.getInstance(context)
|
||||
|
||||
fun scheduleHeartbeat(intervalSeconds: Long, onHeartbeat: () -> Unit) {
|
||||
onHeartbeatCallback = onHeartbeat
|
||||
val constraints = Constraints.Builder()
|
||||
.setRequiredNetworkType(NetworkType.NOT_REQUIRED)
|
||||
.build()
|
||||
|
|
@ -42,11 +43,13 @@ class HeartbeatScheduler(private val context: Context) {
|
|||
params: WorkerParameters
|
||||
) : Worker(context, params) {
|
||||
override fun doWork(): Result {
|
||||
onHeartbeatCallback?.invoke()
|
||||
return Result.success()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
var onHeartbeatCallback: (() -> Unit)? = null
|
||||
const val HEARTBEAT_WORK_TAG = "traccar_heartbeat"
|
||||
const val HEARTBEAT_WORK_NAME = "traccar_heartbeat_work"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue