Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
ra...@google.com <ra...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 9278b8989a0703ec9de6351cbc91605b3408de2d
Author: Sumir Kataria <sumir@google.com>
Date: Mon Apr 29 10:27:32 2019
Update keepForAtLeast documentation to mention unfinished work won't be pruned.
Fixes: 130638001
Test: N/A
Change-Id: I1dfded630178cb049c7fd12cc2fe436e39c863ff
M work/workmanager/src/main/java/androidx/work/WorkRequest.java
https://android-review.googlesource.com/953577
https://goto.google.com/android-sha1/9278b8989a0703ec9de6351cbc91605b3408de2d
Branch: androidx-master-dev
commit 9278b8989a0703ec9de6351cbc91605b3408de2d
Author: Sumir Kataria <sumir@google.com>
Date: Mon Apr 29 10:27:32 2019
Update keepForAtLeast documentation to mention unfinished work won't be pruned.
Fixes: 130638001
Test: N/A
Change-Id: I1dfded630178cb049c7fd12cc2fe436e39c863ff
M work/workmanager/src/main/java/androidx/work/WorkRequest.java
su...@google.com <su...@google.com>
da...@gmail.com <da...@gmail.com> #3
Confirmed fixed. thank you
Description
I recently switched my JobManager TriggerContentUri implementation to WorkManager and am noticing a major slowdown in the speed at which it responds to ContentUri changes vs. JobManager.
In JobManager, there is an api call to builder.setTriggerContentMaxDelay() that I use as follows to ensure a response within 3 seconds of the content change - this allows my widget UI to be responsive and show a new calendar event created in the Google Calendar app quickly.
public static void scheduleJob(Context context) {
JobScheduler js = context.getSystemService(JobScheduler.class);
JobInfo.Builder builder = new JobInfo.Builder(JOB_TAG_CALENDAR,
new ComponentName(context, CalendarContentTriggerJob.class));
builder.addTriggerContentUri(new JobInfo.TriggerContentUri(CalendarContract.CONTENT_URI,
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
builder.setTriggerContentUpdateDelay(DateUtils.SECOND_IN_MILLIS);
builder.setTriggerContentMaxDelay(3 * DateUtils.SECOND_IN_MILLIS);
js.schedule(builder.build());
}
My WorkManager implementation looks as follows. There is no way of specifying a Max Delay and as a result the response to the content change is significantly slower than the JobManager implementation.
fun scheduleJob() {
// Define the constraints
val constraints = Constraints.Builder()
.addContentUriTrigger(CalendarContract.CONTENT_URI, true)
.build()
// Create the job definition
val calendarSync = OneTimeWorkRequest.Builder(CalendarContentTriggerWorker::class.java)
.setConstraints(constraints)
.addTag(JOB_TAG_CALENDAR)
.build()
// Start the job
WorkManager.getInstance().enqueueUniqueWork(JOB_TAG_CALENDAR, ExistingWorkPolicy.REPLACE,
calendarSync)
}