From 4416c3d6e4becd9ed39b89a03db0239c8225a135 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 4 May 2010 17:22:49 -0700 Subject: Fix issue #2643754: Launcher is caching widget layouts for too long With the .apk file names now changing during an update, we need to make sure to flush all caches related to a package when the package is removed. Otherwise we can continue to use the old package, since its old file may still exist if we try to load it too soon. Change-Id: I15f08dffca3feac999dbca4f24bef12a30ca0a66 --- core/java/android/app/ApplicationThreadNative.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'core/java/android/app/ApplicationThreadNative.java') diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index 7cba13fe428b..da26a78f8198 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -393,6 +393,15 @@ public abstract class ApplicationThreadNative extends Binder mi.writeToParcel(reply, 0); return true; } + + case DISPATCH_PACKAGE_BROADCAST_TRANSACTION: + { + data.enforceInterface(IApplicationThread.descriptor); + int cmd = data.readInt(); + String[] packages = data.readStringArray(); + dispatchPackageBroadcast(cmd, packages); + return true; + } } return super.onTransact(code, data, reply, flags); @@ -806,5 +815,16 @@ class ApplicationThreadProxy implements IApplicationThread { data.recycle(); reply.recycle(); } + + public void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken(IApplicationThread.descriptor); + data.writeInt(cmd); + data.writeStringArray(packages); + mRemote.transact(DISPATCH_PACKAGE_BROADCAST_TRANSACTION, data, null, + IBinder.FLAG_ONEWAY); + data.recycle(); + + } } -- cgit v1.2.3