Fixed
Status Update
Comments
al...@gmail.com <al...@gmail.com> #3
This is due to a bug in Fragment - using 1.1.0-alpha02 of Preference uses a newer Fragment dependency, and fixes this issue.
su...@google.com <su...@google.com> #4
Actually, I just checked and it still crashes using 1.1.0-alpha02.
su...@google.com <su...@google.com> #5
Could you maybe upload a simpler project with reproduction steps? Or at least provide reproduction steps for the project you linked - Does it crash when using Preference 1.0.0?
This still seems suspiciously similar tohttps://issuetracker.google.com/issues/120240628 , which can not be reproduced with 1.1.0-alpha02 (following the reproduction steps in the first comment).
This still seems suspiciously similar to
Description
Oftentimes, we have jobs that we'd like to retry - for example, if network cuts out during a background upload - but we don't want to retry them indefinitely. It would be very useful to specify this as part of the work request, especially for jobs for which we wouldn't otherwise manually track state:
```
class MyWorker extends Worker {
@Override
WorkerResult doWork() {
try {
doSomeNetworkThing();
return WorkerResult.SUCCESS;
} catch (IOException e) {
// Oh no, the network is spotty. Retry, unless this is the Nth attempt, in which case
// just fail
if (/**/) { //
return WorkerResult.RETRY;
} else {
return WorkerResult.FAILURE;
}
}
}
}
```
It would be nice if, instead, we could do this declaratively:
```
new OneTimeWorkRequest.Builder(MyWorker.class)
.setBackoffPolicy(BackoffPolicy.exponential().withMaxRetries(10)) // let's just pretend this API exists
.build();
```
The above API would specify a policy such that, if the `MyWorker#doWork()` returns `WorkerResult.RETRY` 10 times, the scheduler will consider that to be equivalent to `WorkerResult.FAILURE`.