Chromium Code Reviews| Index: components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java |
| diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java |
| index 31f087ff96c2a6a824b0a94990760e86372e0a7c..d7570fca637dd1365ba0b07f4f7fea13f1c0f01c 100644 |
| --- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java |
| +++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java |
| @@ -13,6 +13,7 @@ import org.chromium.base.Log; |
| import org.chromium.base.ThreadUtils; |
| import java.lang.reflect.Constructor; |
| +import java.util.Set; |
| /** |
| * A BackgroundTaskScheduler which is used to schedule jobs that run in the background. |
| @@ -90,4 +91,18 @@ public class BackgroundTaskScheduler { |
| BackgroundTaskSchedulerPrefs.removeScheduledTask(taskId); |
| mSchedulerDelegate.cancel(context, taskId); |
| } |
| + |
| + public void reschedule(Context context) { |
| + Set<String> scheduledTasksClassNames = BackgroundTaskSchedulerPrefs.getScheduledTasks(); |
| + BackgroundTaskSchedulerPrefs.removeAllTasks(); |
|
nyquist
2017/04/18 22:33:03
So, conceptually we could do this before or after
fgorski
2017/04/20 19:09:58
I did it to avoid updating the prefs entry from bo
nyquist
2017/04/25 20:44:05
I think what we have now is fine.
|
| + for (String className : scheduledTasksClassNames) { |
| + BackgroundTask task = getBackgroundTaskFromClassName(className); |
| + if (task == null) { |
| + Log.w(TAG, "Cannot reschedule task for: " + className); |
| + continue; |
| + } |
| + |
| + task.reschedule(context); |
| + } |
| + } |
| } |