diff options
author | Christopher Tate <ctate@google.com> | 2015-05-12 17:06:33 -0700 |
---|---|---|
committer | Chris Tate <ctate@android.com> | 2015-05-30 00:49:26 +0000 |
commit | 3d7e0d8e21e2ba706573fc43f8a7e5654814fb11 (patch) | |
tree | 2c15d117ab98c7aed3edaa8843f3b8031ba86383 /services/backup | |
parent | cb81d183672a3d9858ade10a997990c5d66a1be3 (diff) | |
download | frameworks_base-3d7e0d8e21e2ba706573fc43f8a7e5654814fb11.zip frameworks_base-3d7e0d8e21e2ba706573fc43f8a7e5654814fb11.tar.gz frameworks_base-3d7e0d8e21e2ba706573fc43f8a7e5654814fb11.tar.bz2 |
Adjust key/value backup scheduling
We now try to perform key/value backups only while charging, proceeding
off-charger only after we've waited a full day for the device to be
plugged in.
Bug 21076663
Change-Id: Ib32c9f8bfaf8a310f5f388907e38a28d3c54bd8e
Diffstat (limited to 'services/backup')
-rw-r--r-- | services/backup/java/com/android/server/backup/KeyValueBackupJob.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java index a4489c1..e3ff5ce 100644 --- a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java +++ b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java @@ -38,16 +38,17 @@ public class KeyValueBackupJob extends JobService { new ComponentName("android", KeyValueBackupJob.class.getName()); private static final int JOB_ID = 0x5039; - // Once someone asks for a backup, this is how long we hold off, batching - // up additional requests, before running the actual backup pass. Privileged - // callers can always trigger an immediate pass via BackupManager.backupNow(). + // Minimum wait time between backups even while we're on charger static final long BATCH_INTERVAL = 4 * AlarmManager.INTERVAL_HOUR; // Random variation in next-backup scheduling time to avoid server load spikes private static final int FUZZ_MILLIS = 10 * 60 * 1000; - // Don't let the job scheduler defer forever; give it a (lenient) deadline - private static final long MAX_DEFERRAL = 1 * AlarmManager.INTERVAL_HOUR; + // Once someone asks for a backup, this is how long we hold off until we find + // an on-charging opportunity. If we hit this max latency we will run the operation + // regardless. Privileged callers can always trigger an immediate pass via + // BackupManager.backupNow(). + private static final long MAX_DEFERRAL = AlarmManager.INTERVAL_DAY; private static boolean sScheduled = false; private static long sNextScheduled = 0; @@ -70,7 +71,8 @@ public class KeyValueBackupJob extends JobService { JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, sKeyValueJobService) .setMinimumLatency(delay) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) - .setOverrideDeadline(delay + MAX_DEFERRAL); + .setRequiresCharging(true) + .setOverrideDeadline(MAX_DEFERRAL); js.schedule(builder.build()); sNextScheduled = System.currentTimeMillis() + delay; |