Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Looks to be the same issue as https://github.com/androidannotations/androidannotations/issues/1208 where after being parceled and unparceled, the type swaps to Parcelable[] which is indeed a different type than CustomModel[]. The same thing can be seen with Fragment destinations if you:
1. turn on the Developer Option of "Don't keep activities"
2. Navigate to the Fragment destination (it won't crash)
3. Hit the home button
4. Use the recents button to relaunch the app (it will crash)
It seems like the only viable work around is to create a new array of the correct type (CustomModel[]), then System.arraycopy() the objects over. We can do this automatically as part of the Args class. We should also double check to see if this same problem exists with Serializable.
1. turn on the Developer Option of "Don't keep activities"
2. Navigate to the Fragment destination (it won't crash)
3. Hit the home button
4. Use the recents button to relaunch the app (it will crash)
It seems like the only viable work around is to create a new array of the correct type (CustomModel[]), then System.arraycopy() the objects over. We can do this automatically as part of the Args class. We should also double check to see if this same problem exists with Serializable.
Description
android.arch.work:work-runtime
android.arch.work:work-firebase
Version used:
Devices/Android versions reproduced on:
Reproducible on API 21 emulator with google play services
If OneTimeWorkRequest setInitialDelay() method is set to WorkRequest.MIN_BACKOFF_MILLIS app will crash at runtime with
com.firebase.jobdispatcher.ValidationEnforcer$ValidationException: JobParameters is invalid: Initial backoff must be at least 30s
Therefore, I think WorkRequest.MIN_BACKOFF_MILLIS should be at least 30 seconds, or, perhaps, you could create a separate constant for the initial delay and crash WorkManager always if initial delay is less than 30 seconds, no matter what API level.