diff options
| author | Dianne Hackborn <hackbod@google.com> | 2010-05-04 17:22:49 -0700 |
|---|---|---|
| committer | Dianne Hackborn <hackbod@google.com> | 2010-05-04 17:22:49 -0700 |
| commit | 4416c3d6e4becd9ed39b89a03db0239c8225a135 (patch) | |
| tree | ee83724da376bd99e2a35880c87522a20e2572da /core/java/android/app/ApplicationThreadNative.java | |
| parent | 5e5202bd6f9e7687fc6399762529b0ef5625e515 (diff) | |
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
Diffstat (limited to 'core/java/android/app/ApplicationThreadNative.java')
| -rw-r--r-- | core/java/android/app/ApplicationThreadNative.java | 20 |
1 files changed, 20 insertions, 0 deletions
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(); + + } } |
