【发布时间】:2019-02-15 07:24:34
【问题描述】:
我已设置工作经理定期在特定时间执行任务。但它适用于其他 android 版本,如 25 或更低版本。当我在 API 28 上运行它时,当我从最近的列表中清除应用程序时,它将停止触发广播。
我在活动中安排了这样的工作经理:
OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(MyWorker.class).setInitialDelay(15, TimeUnit.SECONDS).build();
WorkManager.getInstance().enqueue(mywork);
这是我的工人阶级:
public class MyWorker extends Worker {
@NonNull
@Override
public Worker.WorkerResult doWork() {
// Do the work here
Mylogger.getInstance().printLog("MyWorr","doWork()");
//fire broadcast from here
Intent broadcastIntent = new Intent(getApplicationContext(), TimeMatchingBroadcastReceiver.class);
getApplicationContext().sendBroadcast(broadcastIntent);
CommonUtils.scheduleWorkManager();
// Indicate success or failure with your return value:
return WorkerResult.SUCCESS;
// (Returning RETRY tells WorkManager to try this task again
// later; FAILURE says not to try again.)
}
}
即使我从所有版本的 android 的最近列表中关闭或清除应用程序,我也想执行工作管理器。 谢谢。
【问题讨论】:
-
您的
return WorkerResult.SUCCESS告诉我,我认为您使用的不是最新版本。尝试更新到最新版本(目前我认为是 beta05')。 -
@Ridcully 感谢您的建议。让我更新并测试一下。
-
@Ridcully 以前的问题是通过增加工作库的版本来解决的。
But now it is not working On model Xiaomi MI 5. API level 28 (8.0.0)当我从最近的列表中清除应用程序时。你能帮我解决一下吗? -
我想这是最好的,如果您为 WorkManager 提交错误。根据各个 Beta 版本的发行说明,他们似乎为各个 Android 版本修复了很多类似的错误。
标签: android android-service android-lifecycle android-jetpack android-workmanager