也许这是关于 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