Create API for launching from recents
Relaunch apps from recents using the same uid and package as was used
in the original launch.
Fixes bug 16358208.
Change-Id: I340800bfee79926b197929360d69f1d570bbf1eb
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index fb70098..342155d 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -284,6 +284,17 @@
return true;
}
+ case START_ACTIVITY_FROM_RECENTS_TRANSACTION:
+ {
+ data.enforceInterface(IActivityManager.descriptor);
+ int taskId = data.readInt();
+ Bundle options = data.readInt() == 0 ? null : Bundle.CREATOR.createFromParcel(data);
+ int result = startActivityFromRecents(taskId, options);
+ reply.writeNoException();
+ reply.writeInt(result);
+ return true;
+ }
+
case FINISH_ACTIVITY_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
IBinder token = data.readStrongBinder();
@@ -2482,6 +2493,24 @@
data.recycle();
return result != 0;
}
+ public int startActivityFromRecents(int taskId, Bundle options) throws RemoteException {
+ Parcel data = Parcel.obtain();
+ Parcel reply = Parcel.obtain();
+ data.writeInterfaceToken(IActivityManager.descriptor);
+ data.writeInt(taskId);
+ if (options == null) {
+ data.writeInt(0);
+ } else {
+ data.writeInt(1);
+ options.writeToParcel(data, 0);
+ }
+ mRemote.transact(START_ACTIVITY_FROM_RECENTS_TRANSACTION, data, reply, 0);
+ reply.readException();
+ int result = reply.readInt();
+ reply.recycle();
+ data.recycle();
+ return result;
+ }
public boolean finishActivity(IBinder token, int resultCode, Intent resultData, boolean finishTask)
throws RemoteException {
Parcel data = Parcel.obtain();