diff options
-rw-r--r-- | core/java/android/content/SyncManager.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index c9077bc23797..699b61d2b5d4 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -31,6 +31,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.RegisteredServicesCache; import android.content.pm.ProviderInfo; +import android.content.pm.RegisteredServicesCacheListener; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; @@ -325,6 +326,14 @@ public class SyncManager implements OnAccountsUpdateListener { mSyncHandler = new SyncHandler(syncThread.getLooper()); mSyncAdapters = new SyncAdaptersCache(mContext); + mSyncAdapters.setListener(new RegisteredServicesCacheListener<SyncAdapterType>() { + public void onServiceChanged(SyncAdapterType type, boolean removed) { + if (!removed) { + scheduleSync(null, type.authority, null, 0 /* no delay */, + false /* onlyThoseWithUnkownSyncableState */); + } + } + }, mSyncHandler); mSyncAlarmIntent = PendingIntent.getBroadcast( mContext, 0 /* ignored */, new Intent(ACTION_SYNC_ALARM), 0); |