summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/SyncManager.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index 4e9e49c..1f3fbf6 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -177,6 +177,7 @@ class SyncManager implements OnAccountsUpdatedListener {
private BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (!mFactoryTest) {
+ mBootCompleted = true;
AccountManager.get(mContext).addOnAccountsUpdatedListener(SyncManager.this,
mSyncHandler, true /* updateImmediately */);
}
@@ -283,6 +284,8 @@ class SyncManager implements OnAccountsUpdatedListener {
private final boolean mFactoryTest;
+ private volatile boolean mBootCompleted = false;
+
private ConnectivityManager getConnectivityManager() {
synchronized (this) {
if (mConnManagerDoNotUseDirectly == null) {
@@ -541,6 +544,13 @@ class SyncManager implements OnAccountsUpdatedListener {
Bundle extras, long delay, boolean onlyThoseWithUnkownSyncableState) {
boolean isLoggable = Log.isLoggable(TAG, Log.VERBOSE);
+ if (!mBootCompleted) {
+ if (isLoggable) {
+ Log.v(TAG, "suppressing scheduleSync() since boot hasn't completed");
+ }
+ return;
+ }
+
if (!isSyncEnabled()) {
if (isLoggable) {
Log.v(TAG, "not syncing because sync is disabled");