小编Giu*_*oni的帖子

WorkManager 在应用程序关闭后停止调度定期 Worker

也许这是关于 WorkManager 的另一个问题,但我真的找不到解决方案......

正如标题所示,我正在尝试每 15 分钟运行一次定期工作。实际上,在工作人员中,我每分钟都会轮询一些数据。每次轮询后,几乎每隔 1 秒,我都会检查工作进程是否正在停止,如果是则返回,否则继续等待,直到达到 1 分钟并再次轮询数据。

根据文档,这应该有效,而且确实如此,直到我从最近的应用程序屏幕中杀死该应用程序。

这是代码:

package com.qsea.app.cordova;

import android.content.Context;

import android.os.SystemClock;

import android.util.Log;

import androidx.work.Worker;
import androidx.work.WorkerParameters;

public class ServerListenerWorker extends Worker {

    public static final String TAG = "ServerListenerWorker";

    public ServerListenerWorker(
        Context appContext,
        WorkerParameters workerParams
    ) {
        super(appContext, workerParams);
    }

    @Override
    public Result doWork() {

        Log.d(TAG, "Doing work");

        final long startTime = SystemClock.elapsedRealtime();
        final int maxDelta = 840000; // 14 minutes

        while (true) {
            // I did this to stop this worker …
Run Code Online (Sandbox Code Playgroud)

android background-service push-notification android-workmanager

3
推荐指数
1
解决办法
3188
查看次数