Status Update
Comments
dr...@gmail.com <dr...@gmail.com> #2
I'm not sure how to edit the description. But forgot to add that this will work when the app is in the foreground. It just doesn't work when you lock your device. I test this by moving the app to the background and then locking my device and checking the logs in Android Studio.
dr...@gmail.com <dr...@gmail.com> #3
It would be great if you could prioritize a fix for this issue. Additionally, if there are any alternative ways we can address this from our side, please let us know. Thank you!
da...@google.com <da...@google.com> #4
We also experienced issues with the new version 2.10.0. In our app a Job that is launched at start of the app is triggered and then immediatly cancelled because constraints are not meet anymore. I tried everything from putting it as a foreground job removing all constraints on the job but the behavior stay the same. I will rollback to 2.9.1 until it's fixed. You will find attached some logs of the WM in our app, take a look at job fec664f7-e40c-4df1-baca-3cbc7e1b1ff9.
dr...@gmail.com <dr...@gmail.com> #5
I already have the following in my Manifest:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove">
</provider>
And the following in my Application
class (implementing androidx.work.Configuration.Provider
):
@NonNull
@Override
public androidx.work.Configuration getWorkManagerConfiguration() {
return new androidx.work.Configuration.Builder()
.setMinimumLoggingLevel(Log.VERBOSE)
.build();
}
So WorkManager logs are already enabled?
Incidentally if I try to add the following to my Manifest (based on the link you provided):
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove"/>
... then I just get a lint error Unresolved class 'WorkManagerInitializer'
.
dr...@gmail.com <dr...@gmail.com> #6
Here is some WM-
log output... com.example.myapp.pro.debug
is the app I'm trying to troubleshoot... com.example.myapp
is the non-debug (and non-pro variant) of the app, installed separately (and without any logging present):
[SOME LOGS BEFORE RESTARTING PHONE]
2024-09-06 13:25:19.628 6658-29559 WM-PackageManagerHelper com.example.myapp.pro.debug D Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
2024-09-06 13:25:19.632 6658-29559 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID a8a3867c-74df-4bea-8ea1-cf6eaea78d18Job ID 3381
2024-09-06 13:25:19.636 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:25:19.647 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4
2024-09-06 13:25:19.662 6658-29559 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4Job ID 3382
2024-09-06 13:25:19.664 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:25:19.677 6658-29559 WM-ConstraintTracker com.example.myapp.pro.debug D NetworkStateTracker24: initial state = NetworkState(isConnected=true, isValidated=true, isMetered=false, isNotRoaming=true)
2024-09-06 13:25:19.677 6658-29559 WM-NetworkStateTracker com.example.myapp.pro.debug D Registering network callback
2024-09-06 13:25:19.680 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, generation=0)
2024-09-06 13:25:19.681 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, generation=0)
2024-09-06 13:25:19.682 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -64, Link speed: 351Mbps, Tx Link speed: 351Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -64]
2024-09-06 13:25:19.684 6658-29557 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, generation=0)
2024-09-06 13:25:19.686 6658-29557 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, generation=0) is already enqueued for processing
2024-09-06 13:25:19.692 6658-6658 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:25:25.265 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=39607Kbps LinkDnBandwidth>=54971Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -62, Link speed: 234Mbps, Tx Link speed: 234Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -62]
---------------------------- PROCESS ENDED (29620) for package com.example.myapp ----------------------------
2024-09-06 13:25:34.605 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -65, Link speed: 234Mbps, Tx Link speed: 234Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -65]
2024-09-06 13:25:35.574 6658-29559 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Retry.
2024-09-06 13:25:35.577 6658-29559 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result RETRY for Work [ id=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, tags={ com.example.myapp.MyWorker,widget:151,cycle:0,name:41cd9c31,type:onetime,trigger:options_changed,network:connected,version:1844,reference:0 } ]
2024-09-06 13:25:35.590 6658-6658 WM-Processor com.example.myapp.pro.debug D Processor a8a3867c-74df-4bea-8ea1-cf6eaea78d18 executed; reschedule = true
2024-09-06 13:25:35.590 6658-6658 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=a8a3867c-74df-4bea-8ea1-cf6eaea78d18, generation=0)
2024-09-06 13:25:35.592 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D a8a3867c-74df-4bea-8ea1-cf6eaea78d18 executed on JobScheduler
2024-09-06 13:25:35.611 6658-29556 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:25:35.636 6658-29556 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID a8a3867c-74df-4bea-8ea1-cf6eaea78d18Job ID 3383
2024-09-06 13:25:35.650 6658-29556 WM-NetworkStateTracker com.example.myapp.pro.debug D Unregistering network callback
2024-09-06 13:26:05.111 6658-29557 WM-Processor com.example.myapp.pro.debug D Processor cancelling a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:26:05.111 6658-29557 WM-Processor com.example.myapp.pro.debug D WorkerWrapper could not be found for a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:26:05.114 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID a8a3867c-74df-4bea-8ea1-cf6eaea78d18
2024-09-06 13:26:05.121 6658-29557 WM-PackageManagerHelper com.example.myapp.pro.debug D Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
2024-09-06 13:26:05.131 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 7255f32b-51c1-4d1f-a06c-5958956bc0b8Job ID 3384
2024-09-06 13:26:05.142 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for 7255f32b-51c1-4d1f-a06c-5958956bc0b8
2024-09-06 13:26:05.153 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4
2024-09-06 13:26:05.164 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4Job ID 3385
2024-09-06 13:26:05.167 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for 7255f32b-51c1-4d1f-a06c-5958956bc0b8
2024-09-06 13:26:05.181 6658-29557 WM-ConstraintTracker com.example.myapp.pro.debug D NetworkStateTracker24: initial state = NetworkState(isConnected=true, isValidated=true, isMetered=false, isNotRoaming=true)
2024-09-06 13:26:05.181 6658-29557 WM-NetworkStateTracker com.example.myapp.pro.debug D Registering network callback
2024-09-06 13:26:05.185 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=7255f32b-51c1-4d1f-a06c-5958956bc0b8, generation=0)
2024-09-06 13:26:05.185 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=7255f32b-51c1-4d1f-a06c-5958956bc0b8, generation=0)
2024-09-06 13:26:05.187 6658-29557 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=7255f32b-51c1-4d1f-a06c-5958956bc0b8, generation=0)
2024-09-06 13:26:05.187 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -65, Link speed: 234Mbps, Tx Link speed: 234Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -65]
2024-09-06 13:26:05.187 6658-29557 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=7255f32b-51c1-4d1f-a06c-5958956bc0b8, generation=0) is already enqueued for processing
2024-09-06 13:26:05.190 6658-6658 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:26:06.332 6658-29556 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Success {mOutputData=Data {}}.
2024-09-06 13:26:06.334 6658-29556 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result SUCCESS for Work [ id=7255f32b-51c1-4d1f-a06c-5958956bc0b8, tags={ com.example.myapp.MyWorker,widget:151,cycle:0,name:41cd9c31,type:onetime,trigger:options_changed,network:connected,version:1844,reference:0 } ]
2024-09-06 13:26:06.343 6658-6658 WM-Processor com.example.myapp.pro.debug D Processor 7255f32b-51c1-4d1f-a06c-5958956bc0b8 executed; reschedule = false
2024-09-06 13:26:06.343 6658-6658 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=7255f32b-51c1-4d1f-a06c-5958956bc0b8, generation=0)
2024-09-06 13:26:06.344 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D 7255f32b-51c1-4d1f-a06c-5958956bc0b8 executed on JobScheduler
2024-09-06 13:26:06.353 6658-29556 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 7255f32b-51c1-4d1f-a06c-5958956bc0b8
2024-09-06 13:26:06.357 6658-29556 WM-NetworkStateTracker com.example.myapp.pro.debug D Unregistering network callback
2024-09-06 13:26:13.924 6658-29557 WM-PackageManagerHelper com.example.myapp.pro.debug D Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
2024-09-06 13:26:13.934 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 3a01a98b-5fd8-40d6-b967-d7be7a6f21afJob ID 3386
2024-09-06 13:26:13.942 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for 3a01a98b-5fd8-40d6-b967-d7be7a6f21af
2024-09-06 13:26:13.957 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4
2024-09-06 13:26:13.964 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4Job ID 3387
2024-09-06 13:26:13.966 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for 3a01a98b-5fd8-40d6-b967-d7be7a6f21af
2024-09-06 13:26:13.978 6658-29557 WM-ConstraintTracker com.example.myapp.pro.debug D NetworkStateTracker24: initial state = NetworkState(isConnected=true, isValidated=true, isMetered=false, isNotRoaming=true)
2024-09-06 13:26:13.978 6658-29557 WM-NetworkStateTracker com.example.myapp.pro.debug D Registering network callback
2024-09-06 13:26:13.983 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, generation=0)
2024-09-06 13:26:13.985 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -65, Link speed: 234Mbps, Tx Link speed: 234Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -65]
2024-09-06 13:26:13.986 6658-29557 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, generation=0)
2024-09-06 13:26:13.989 6658-6658 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:26:13.989 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, generation=0)
2024-09-06 13:26:13.991 6658-29557 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, generation=0) is already enqueued for processing
2024-09-06 13:26:19.119 6658-29559 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Success {mOutputData=Data {}}.
2024-09-06 13:26:19.123 6658-29559 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result SUCCESS for Work [ id=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, tags={ com.example.myapp.MyWorker,widget:151,cycle:0,name:41cd9c31,type:onetime,trigger:options_changed,network:connected,version:1844,reference:0 } ]
2024-09-06 13:26:19.131 6658-6658 WM-Processor com.example.myapp.pro.debug D Processor 3a01a98b-5fd8-40d6-b967-d7be7a6f21af executed; reschedule = false
2024-09-06 13:26:19.131 6658-6658 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=3a01a98b-5fd8-40d6-b967-d7be7a6f21af, generation=0)
2024-09-06 13:26:19.132 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D 3a01a98b-5fd8-40d6-b967-d7be7a6f21af executed on JobScheduler
2024-09-06 13:26:19.141 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 3a01a98b-5fd8-40d6-b967-d7be7a6f21af
2024-09-06 13:26:19.147 6658-29559 WM-NetworkStateTracker com.example.myapp.pro.debug D Unregistering network callback
2024-09-06 13:26:21.096 6658-29557 WM-PackageManagerHelper com.example.myapp.pro.debug D Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
2024-09-06 13:26:21.103 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID aa0ffffb-fbab-4954-9980-605fd9ef95e0Job ID 3388
2024-09-06 13:26:21.106 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for aa0ffffb-fbab-4954-9980-605fd9ef95e0
2024-09-06 13:26:21.113 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID a0c44f5c-160c-440f-b560-344056730ce4
2024-09-06 13:26:21.125 6658-29557 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID a0c44f5c-160c-440f-b560-344056730ce4Job ID 3389
2024-09-06 13:26:21.127 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for aa0ffffb-fbab-4954-9980-605fd9ef95e0
2024-09-06 13:26:21.147 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=aa0ffffb-fbab-4954-9980-605fd9ef95e0, generation=0)
2024-09-06 13:26:21.148 6658-29557 WM-ConstraintTracker com.example.myapp.pro.debug D NetworkStateTracker24: initial state = NetworkState(isConnected=true, isValidated=true, isMetered=false, isNotRoaming=true)
2024-09-06 13:26:21.148 6658-29557 WM-NetworkStateTracker com.example.myapp.pro.debug D Registering network callback
2024-09-06 13:26:21.152 6658-29560 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -65, Link speed: 234Mbps, Tx Link speed: 234Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 468Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -65]
2024-09-06 13:26:21.153 6658-29557 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=aa0ffffb-fbab-4954-9980-605fd9ef95e0, generation=0)
2024-09-06 13:26:21.159 6658-6658 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:26:21.159 6658-29557 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=aa0ffffb-fbab-4954-9980-605fd9ef95e0, generation=0)
2024-09-06 13:26:21.164 6658-29557 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=aa0ffffb-fbab-4954-9980-605fd9ef95e0, generation=0) is already enqueued for processing
2024-09-06 13:26:25.942 6658-29556 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Success {mOutputData=Data {}}.
2024-09-06 13:26:25.944 6658-29556 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result SUCCESS for Work [ id=aa0ffffb-fbab-4954-9980-605fd9ef95e0, tags={ com.example.myapp.MyWorker,widget:150,cycle:0,name:d2f14b29,type:onetime,trigger:options_changed,network:connected,version:1844,reference:0 } ]
2024-09-06 13:26:25.966 6658-6658 WM-Processor com.example.myapp.pro.debug D Processor aa0ffffb-fbab-4954-9980-605fd9ef95e0 executed; reschedule = false
2024-09-06 13:26:25.966 6658-6658 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=aa0ffffb-fbab-4954-9980-605fd9ef95e0, generation=0)
2024-09-06 13:26:25.967 6658-6658 WM-SystemJobService com.example.myapp.pro.debug D aa0ffffb-fbab-4954-9980-605fd9ef95e0 executed on JobScheduler
2024-09-06 13:26:25.978 6658-29559 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID aa0ffffb-fbab-4954-9980-605fd9ef95e0
2024-09-06 13:26:25.985 6658-29559 WM-NetworkStateTracker com.example.myapp.pro.debug D Unregistering network callback
[RESTART PHONE]
--------- beginning of main
--------- beginning of system
[ENTER PIN]
---------------------------- PROCESS STARTED (6456) for package com.example.myapp.pro.debug ----------------------------
---------------------------- PROCESS STARTED (6647) for package com.example.myapp ----------------------------
---------------------------- PROCESS ENDED (6647) for package com.example.myapp ----------------------------
---------------------------- PROCESS STARTED (10198) for package com.example.myapp ----------------------------
---------------------------- PROCESS ENDED (10198) for package com.example.myapp ----------------------------
[WAIT > 15 mins, by which time the next one of the periodic work should have triggered... it's a 15 min interval...]
[... STILL NO FURTHER LOG OUTPUT DURING THIS TIME... NOTHING...]
[OPEN config window for app (from widget), without any actual interaction with it... immediately I get the following log output...]
2024-09-06 13:44:04.213 6456-6456 WM-PackageManagerHelper com.example.myapp.pro.debug D Skipping component enablement for androidx.work.impl.background.systemjob.SystemJobService
2024-09-06 13:44:04.213 6456-6456 WM-Schedulers com.example.myapp.pro.debug D Created SystemJobScheduler and enabled SystemJobService
2024-09-06 13:44:04.215 6456-29865 WM-ForceStopRunnable com.example.myapp.pro.debug D The default process name was not specified.
2024-09-06 13:44:04.216 6456-29865 WM-ForceStopRunnable com.example.myapp.pro.debug D Performing cleanup operations.
2024-09-06 13:44:04.233 6456-29865 WM-SystemJobScheduler com.example.myapp.pro.debug D Reconciling jobs
2024-09-06 13:44:04.239 6456-29865 WM-ForceStopRunnable com.example.myapp.pro.debug D Found unfinished work, scheduling it.
2024-09-06 13:44:04.244 6456-29865 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID a0c44f5c-160c-440f-b560-344056730ce4Job ID 3389
2024-09-06 13:44:04.249 6456-29865 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4Job ID 3387
2024-09-06 13:44:04.257 6456-29865 WM-GreedyScheduler com.example.myapp.pro.debug D Starting tracking for 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4,a0c44f5c-160c-440f-b560-344056730ce4
2024-09-06 13:44:04.290 6456-29865 WM-ConstraintTracker com.example.myapp.pro.debug D NetworkStateTracker24: initial state = NetworkState(isConnected=true, isValidated=true, isMetered=false, isNotRoaming=true)
2024-09-06 13:44:04.290 6456-29865 WM-NetworkStateTracker com.example.myapp.pro.debug D Registering network callback
2024-09-06 13:44:04.297 6456-29865 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, generation=205)
2024-09-06 13:44:04.298 6456-29865 WM-GreedyScheduler com.example.myapp.pro.debug D Constraints met: Scheduling work ID WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102)
2024-09-06 13:44:04.299 6456-29869 WM-NetworkStateTracker com.example.myapp.pro.debug D Network capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=7869Kbps LinkDnBandwidth>=67913Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 5, RSSI: -66, Link speed: 390Mbps, Tx Link speed: 390Mbps, Max Supported Tx Link speed: 866Mbps, Rx Link speed: 650Mbps, Max Supported Rx Link speed: 866Mbps, Frequency: 5180MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -66]
2024-09-06 13:44:04.303 6456-29865 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, generation=205)
2024-09-06 13:44:04.305 6456-29865 WM-Processor com.example.myapp.pro.debug D Processor: processing WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102)
2024-09-06 13:44:04.722 6456-6456 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102)
2024-09-06 13:44:04.724 6456-29868 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102) is already enqueued for processing
2024-09-06 13:44:04.725 6456-6456 WM-SystemJobService com.example.myapp.pro.debug D onStartJob for WorkGenerationalId(workSpecId=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, generation=205)
2024-09-06 13:44:04.726 6456-6456 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:44:04.726 6456-29867 WM-Processor com.example.myapp.pro.debug D Work WorkGenerationalId(workSpecId=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, generation=205) is already enqueued for processing
2024-09-06 13:44:04.789 6456-6456 WM-WorkerWrapper com.example.myapp.pro.debug D Starting work for com.example.myapp.MyWorker
2024-09-06 13:44:10.002 6456-29868 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Success {mOutputData=Data {}}.
2024-09-06 13:44:10.005 6456-29868 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result SUCCESS for Work [ id=a0c44f5c-160c-440f-b560-344056730ce4, tags={ com.example.myapp.MyWorker,widget:150,cycle:0,name:429305b5,type:periodic,trigger:options_changed,network:connected,version:1844,reference:0,interval:15 } ]
2024-09-06 13:44:10.011 6456-6456 WM-Processor com.example.myapp.pro.debug D Processor a0c44f5c-160c-440f-b560-344056730ce4 executed; reschedule = false
2024-09-06 13:44:10.012 6456-6456 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102)
2024-09-06 13:44:10.015 6456-6456 WM-SystemJobService com.example.myapp.pro.debug D a0c44f5c-160c-440f-b560-344056730ce4 executed on JobScheduler
2024-09-06 13:44:10.015 6456-29868 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID a0c44f5c-160c-440f-b560-344056730ce4
2024-09-06 13:44:10.017 6456-6456 WM-SystemJobService com.example.myapp.pro.debug D onStopJob for WorkGenerationalId(workSpecId=a0c44f5c-160c-440f-b560-344056730ce4, generation=102)
2024-09-06 13:44:10.035 6456-29868 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID a0c44f5c-160c-440f-b560-344056730ce4Job ID 3390
2024-09-06 13:44:10.516 6456-29866 WM-WorkerWrapper com.example.myapp.pro.debug D com.example.myapp.MyWorker returned a Success {mOutputData=Data {}}.
2024-09-06 13:44:10.520 6456-29866 WM-WorkerWrapper com.example.myapp.pro.debug I Worker result SUCCESS for Work [ id=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, tags={ com.example.myapp.MyWorker,widget:151,cycle:0,name:f9ff5ee0,type:periodic,trigger:options_changed,network:connected,version:1844,reference:0,interval:15 } ]
2024-09-06 13:44:10.531 6456-6456 WM-Processor com.example.myapp.pro.debug D Processor 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4 executed; reschedule = false
2024-09-06 13:44:10.531 6456-6456 WM-GreedyScheduler com.example.myapp.pro.debug D Stopping tracking for WorkGenerationalId(workSpecId=04d0f2fc-8c7b-4d85-9680-680c0d85a3a4, generation=205)
2024-09-06 13:44:10.532 6456-6456 WM-SystemJobService com.example.myapp.pro.debug D 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4 executed on JobScheduler
2024-09-06 13:44:10.536 6456-29866 WM-GreedyScheduler com.example.myapp.pro.debug D Cancelling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4
2024-09-06 13:44:10.556 6456-29866 WM-SystemJobScheduler com.example.myapp.pro.debug D Scheduling work ID 04d0f2fc-8c7b-4d85-9680-680c0d85a3a4Job ID 3387
2024-09-06 13:44:10.561 6456-29866 WM-NetworkStateTracker com.example.myapp.pro.debug D Unregistering network callback
da...@google.com <da...@google.com> #7
WorkManager has a BOOT_COMPLETED
As a workaround I can suggest is for your app to have a similar broadcast receiver just so that your process gets started when the phone restarts so that WorkManager initializes and reschedules jobs.
dr...@gmail.com <dr...@gmail.com> #8
Your suggested workaround seems to work! Rather than having a separate broadcast receiver listening for BOOT_COMPLETED
I've just added this into the onEnabled()
method of my existing AppWidgetProvider
... this is triggered by APPWIDGET_ENABLED
which fires each time the device reboots. And things seem to pick up again OK after a reboot now, without having to open the app to the foreground to kickstart it.
As mentioned, I tried to produce a small repro app, but it didn't exhibit the same problem. No idea what is happening differently with my actual app... nothing is apparent from the logs... it's just the WM jobs seem to disappear without a trace after a reboot. This didn't used to happen in the past.
Description
Is WorkManager expected to work without issues with SDK 35? Because I'm finding that my work is *not persisting after a reboot*.
I'm using WM to perform periodic updating of an app widget via a periodic work. An app widget, by its nature, sits quietly doing its stuff occasionally in the background... there is only a foreground process when the configuration screen is opened for the widget.
I can see `PROCESS ENDED (20640) for package
So I'm finding that, my widgets stop updating after a reboot... the periodic work is no longer triggered... it's still there (it hasn't been deleted), but it's just not triggering. Sure enough, if I bring the app to the foreground (just by opening the config screen for the widget without doing anything else), the periodic work kicks in again and it's back to normal thereafter.
My understanding was that WM is meant to ensure that work persists after a reboot?