不在android 9 emulator上运行网络约束的WorkManager

不在android 9 emulator上运行网络约束的WorkManager,android,android-workmanager,android-9.0-pie,Android,Android Workmanager,Android 9.0 Pie,WorkManager将网络限制的工作排队,仅排队而未在android 9 emulator上运行 8532-8549 D/WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver enabled 8532-8549 D/WM-SystemJobScheduler: Scheduling work ID cdded304-5021-4e94-a13c-2e0746d54a58 Job

WorkManager将网络限制的工作排队,仅排队而未在android 9 emulator上运行

8532-8549 D/WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver enabled
8532-8549 D/WM-SystemJobScheduler: Scheduling work ID cdded304-5021-4e94-a13c-2e0746d54a58 Job ID 0
8532-8549 D/WM-GreedyScheduler: Starting tracking for [cdded304-5021-4e94-a13c-2e0746d54a58]
8532-8549 D/WM-ConstraintTracker: NetworkStateTracker: initial state = [ Connected=true Validated=false Metered=false NotRoaming=true ]
8532-8549 D/WM-NetworkStateTracker: Registering network callback
8532-8549 D/WM-GreedyScheduler: Constraints not met: Cancelling work ID cdded304-5021-4e94-a13c-2e0746d54a58
8532-8549 D/WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver enabled
8532-8549 D/WM-SystemJobScheduler: Scheduling work ID fde1a327-10dc-4356-8145-b1f624f99d48 Job ID 1
8532-8549 D/WM-GreedyScheduler: Starting tracking for [fde1a327-10dc-4356-8145-b1f624f99d48]
8532-8549 D/WM-GreedyScheduler: Constraints not met: Cancelling work ID cdded304-5021-4e94-a13c-2e0746d54a58
8532-8549 D/WM-GreedyScheduler: Constraints not met: Cancelling work ID fde1a327-10dc-4356-8145-b1f624f99d48
编辑

fun enqueueUniqueWork() {
    WorkManager.getInstance().enqueueUniqueWork(
        App.ANONYMOUS_LOGIN,
        ExistingWorkPolicy.KEEP,
        OneTimeWorkRequestBuilder<AnonymousLoginWork>()
            .setConstraints(
                Constraints.Builder()
                    .setRequiredNetworkType(NetworkType.CONNECTED)
                    .build()
            )
            .build()
    )
}
fun-enqueueUniqueWork(){
WorkManager.getInstance().enqueueUniqueWork(
App.ANONYMOUS\u登录,
ExistingWorkPolicy.KEEP,
OneTimeWorkRequestBuilder

从源代码中,我们可以看到网络约束更改为已连接&&已验证,这意味着当前活动网络必须 NetworkCapabilities.NET\u功能\u已验证的功能


问题是:如何在emulator上配置它?

我有一个类似的问题。帮助我解决这个问题的工具是Android Studio Logcat—
WorkManager
会跟踪工作无法排队或启动的原因,这在我的案例中非常有用


在我的例子中,我意外地从我的工人类构造函数中删除了
public
access修饰符,因此
WorkManager
无法实例化它
public
,工作进程已成功排队并运行。

如果未在工作请求中设置约束,您是否尝试查看相同的工作是否运行?请提供导致此问题的代码。您在哪里排队工作?从日志中我们可以看到,某些约束未得到满足,很可能是您的网络constraints@pfmaggi如果我删除网络,工作将运行constraints@SumirKodes工作在Application.onCreate()处排队,只有网络约束