summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJeff Hamilton <jham@android.com>2009-09-03 09:08:30 -0500
committerJeff Hamilton <jham@android.com>2009-09-03 09:09:30 -0500
commitc42c0dd1c4e2f7a4abaac1b2c9a6344448f9db7a (patch)
tree99cfcd5cee9f02996bd9ed0d7c05994e622fc5c4 /core
parent558340f2143b5efe4bc14b901ae1dc1b8cec7901 (diff)
downloadframeworks_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.java8
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();