【问题标题】:Unique Periodic Work Manager not working in Xiaomi Phone独特的定期工作管理器在小米手机中不起作用
【发布时间】:2021-06-16 21:08:32
【问题描述】:

我正在实施具有 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();
}

我也尝试了自动启动权限,但仍然无法正常工作。请帮我。请!!!

【问题讨论】:

  • @ianhanniballake 我确实查看了这个网站,它也有效,但我不能指望用户在最近的应用程序部分锁定应用程序。从开发人员的角度来看,没有解决方法,是吗?
  • 你读过Solution for devs section吗? “到目前为止,在开发方面还没有已知的解决方法。”

标签: android android-workmanager


【解决方案1】:

从我可以判断的情况来看,您的 WorkManager 很可能被关闭,并且一旦您重新打开应用程序,计划任务就会运行。

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

任务管理器关闭: 工作继续(稍后)

重启设备(工作运行): 重启完成后继续工作

应用信息“强制停止”: 工作停止,只有在应用重新启动时才会继续

重启设备(工作被“强制停止”): 应用程序重新启动之前,工作不会继续

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

您可以进一步讨论herehere too 以获得更多想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多