WorkManger 适用于 Oreo 但不适用于 Lollipop

WorkManger works on Oreo but not Lollipop

WorkManager 声明它适用于 JobScheduler 之前的操作系统等,但它似乎不适用于使用 AlarmManager 的 API 级别。我有一个 PeriodicWorkRequest,它在 Oreo 上每隔一段时间运行一次就好了,但在 Lollipop 上,它只运行第一次。

有问题的代码(PeriodicWorker.class当然是我自己的class):

WorkManager
                    .getInstance()
                    .enqueue(
                            new PeriodicWorkRequest.Builder(
                                    PeriodicWorker.class,
                                    PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
                                    TimeUnit.MILLISECONDS
                            )
                                    .setConstraints(
                                            new Constraints.Builder()
                                                    .setRequiredNetworkType(NetworkType.CONNECTED)
                                                    .build()
                                    )
                                    .build()
                    );

我的 WorkManager 依赖项是 android.arch.work:work-runtime:1.0.0-alpha03

这是一个演示项目:https://gitlab.com/neelkamath/work-manager-demo

Lollipop 的功能已在较新版本中修复:android.arch.work:work-runtime:1.0.0-alpha04