diff options
author | Jeff Hamilton <jham@android.com> | 2009-09-03 09:08:30 -0500 |
---|---|---|
committer | Jeff Hamilton <jham@android.com> | 2009-09-03 09:09:30 -0500 |
commit | c42c0dd1c4e2f7a4abaac1b2c9a6344448f9db7a (patch) | |
tree | 99cfcd5cee9f02996bd9ed0d7c05994e622fc5c4 /core | |
parent | 558340f2143b5efe4bc14b901ae1dc1b8cec7901 (diff) | |
download | frameworks_base-c42c0dd1c4e2f7a4abaac1b2c9a6344448f9db7a.zip frameworks_base-c42c0dd1c4e2f7a4abaac1b2c9a6344448f9db7a.tar.gz frameworks_base-c42c0dd1c4e2f7a4abaac1b2c9a6344448f9db7a.tar.bz2 |
Fix the registration of the package changes broadcast receiver.
Change-Id: Ib0b49153a0ec1af7c5a92753860df0f46064a7df
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/content/pm/RegisteredServicesCache.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java index 342de2b..f5f8f30 100644 --- a/core/java/android/content/pm/RegisteredServicesCache.java +++ b/core/java/android/content/pm/RegisteredServicesCache.java @@ -54,7 +54,7 @@ public abstract class RegisteredServicesCache<V> { private final String mAttributesName; // no need to be synchronized since the map is never changed once mService is written - private volatile Map<V, ServiceInfo<V>> mServices; + volatile Map<V, ServiceInfo<V>> mServices; // synchronized on "this" private BroadcastReceiver mReceiver = null; @@ -81,6 +81,7 @@ public abstract class RegisteredServicesCache<V> { if (mReceiver == null) { synchronized (this) { mReceiver = new BroadcastReceiver() { + @Override public void onReceive(Context context, Intent intent) { mServices = generateServicesMap(); } @@ -91,6 +92,7 @@ public abstract class RegisteredServicesCache<V> { intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED); intentFilter.addAction(Intent.ACTION_PACKAGE_CHANGED); intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED); + intentFilter.addDataScheme("package"); mContext.registerReceiver(mReceiver, intentFilter); return true; } @@ -122,6 +124,7 @@ public abstract class RegisteredServicesCache<V> { this.uid = uid; } + @Override public String toString() { return "ServiceInfo: " + type + ", " + componentName; } @@ -159,6 +162,7 @@ public abstract class RegisteredServicesCache<V> { maybeUnregisterForPackageChanges(); } + @Override protected void finalize() throws Throwable { synchronized (this) { if (mReceiver != null) { @@ -169,7 +173,7 @@ public abstract class RegisteredServicesCache<V> { super.finalize(); } - private Map<V, ServiceInfo<V>> generateServicesMap() { + Map<V, ServiceInfo<V>> generateServicesMap() { Map<V, ServiceInfo<V>> services = Maps.newHashMap(); PackageManager pm = mContext.getPackageManager(); |