不在android 9 emulator上运行网络约束的WorkManager
WorkManager将网络限制的工作排队,仅排队而未在android 9 emulator上运行不在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
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()处排队,只有网络约束