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); |
+ } |
+ } |
} |