Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(774)

Unified Diff: components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java

Issue 2814653003: [Android] BackgroundTaskScheduler reschedule implementation (Closed)
Patch Set: Rebasing Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..2fd58ac3812c438dffc583864270e6bc83ca27ca 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.
@@ -75,8 +76,11 @@ public class BackgroundTaskScheduler {
*/
public boolean schedule(Context context, TaskInfo taskInfo) {
ThreadUtils.assertOnUiThread();
- BackgroundTaskSchedulerPrefs.addScheduledTask(taskInfo);
- return mSchedulerDelegate.schedule(context, taskInfo);
+ boolean success = mSchedulerDelegate.schedule(context, taskInfo);
+ if (success) {
+ BackgroundTaskSchedulerPrefs.addScheduledTask(taskInfo);
+ }
+ return success;
}
/**
@@ -90,4 +94,18 @@ public class BackgroundTaskScheduler {
BackgroundTaskSchedulerPrefs.removeScheduledTask(taskId);
mSchedulerDelegate.cancel(context, taskId);
}
+
+ public void reschedule(Context context) {
+ Set<String> scheduledTasksClassNames = BackgroundTaskSchedulerPrefs.getScheduledTasks();
+ BackgroundTaskSchedulerPrefs.removeAllTasks();
+ for (String className : scheduledTasksClassNames) {
+ BackgroundTask task = getBackgroundTaskFromClassName(className);
+ if (task == null) {
+ Log.w(TAG, "Cannot reschedule task for: " + className);
+ continue;
+ }
+
+ task.reschedule(context);
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698