独特的定期工作经理不在小米手机工作



我实现了间隔15分钟的Unique Periodic Work Manager,以向Firebase数据库发送一些数据,但似乎无法在小米手机上工作。

它正在一个模拟器上工作,但不适用于中国的自定义ROM手机。

在我的代码下面附上,以检查我是否做错了什么

内部活动:

Constraints constraints = new Constraints.Builder()
.setRequiresCharging(false)
.build();
final PeriodicWorkRequest periodicWorkRequest1 = new PeriodicWorkRequest.Builder(UploadWorker.class, 15, TimeUnit.MINUTES).setConstraints(constraints).build();
WorkManager workManager = WorkManager.getInstance(this);
workManager.enqueueUniquePeriodicWork("SYNC_DATA", ExistingPeriodicWorkPolicy.KEEP, periodicWorkRequest1);

内部UploadWorker.class

@Override
public Result doWork() {
Log.i(TAG, "doWork: inside dowork()");
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
FirebaseDatabase.getInstance().getReference().child("Redmi").child(currentDateTimeString).setValue(myDetails);
// Indicate whether the work finished successfully with the Result
return Result.success();
}

我也尝试了自动启动权限,但仍然不起作用。请帮帮我。求你了!!!

根据我对这种情况的判断,你的WorkManager很可能被关闭了,一旦你重新打开应用程序,计划的任务就会运行。

这是WorkManager的一个已知问题,实际上不是WorkManager问题,而是操作系统问题。WorkManager的行为如下:

任务管理器关闭:工作继续(一段时间后(

重新启动设备(工作正在运行(:重新引导完成后工作仍在继续

应用程序信息"强制停止":工作停止,只有当应用程序再次启动时才会继续

重新启动设备(工作被"强制停止"(:在应用程序再次启动之前,工作不会继续

问题是,一些设备将从最近菜单中删除应用程序作为强制停止。默认情况下,大多数流行的应用程序都会被列入操作系统的白名单。可能有一个变通方法,可以包括用户将你的应用程序列入白名单,尽管我认为这不是一个合适的方法。小米在这场杀戮中表现得非常激进。可能发生的事情不多,但我建议你通读以下内容。

你可以在这里和这里进行更多的讨论,以获得一些进一步的想法。

最新更新