Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
ra...@google.com <ra...@google.com> #2
I've confirmed that this is fixed in alpha08 as a result of https://android-review.googlesource.com/833717 and a number of other internal changes. Once it is released, please let me know if this fixes your issue.
The second issue of hitting two things at a time is not an issue with Navigation, but an issue with Fragments not canceling click events when stopped, causing the second click event to happen even after the first navigate() operation starts.
This is fixed in AndroidX Fragments 1.1.0-alpha01 or higher as per the release notes:https://developer.android.com/jetpack/androidx/androidx-rn#2018-nov-fragment
The second issue of hitting two things at a time is not an issue with Navigation, but an issue with Fragments not canceling click events when stopped, causing the second click event to happen even after the first navigate() operation starts.
This is fixed in AndroidX Fragments 1.1.0-alpha01 or higher as per the release notes:
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)
}