diff options
Diffstat (limited to 'android/app/servertransaction/DestroyActivityItem.java')
-rw-r--r-- | android/app/servertransaction/DestroyActivityItem.java | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/android/app/servertransaction/DestroyActivityItem.java b/android/app/servertransaction/DestroyActivityItem.java index 38fd5fb6..83da5f33 100644 --- a/android/app/servertransaction/DestroyActivityItem.java +++ b/android/app/servertransaction/DestroyActivityItem.java @@ -29,16 +29,12 @@ import android.os.Trace; */ public class DestroyActivityItem extends ActivityLifecycleItem { - private final boolean mFinished; - private final int mConfigChanges; - - public DestroyActivityItem(boolean finished, int configChanges) { - mFinished = finished; - mConfigChanges = configChanges; - } + private boolean mFinished; + private int mConfigChanges; @Override - public void execute(ClientTransactionHandler client, IBinder token) { + public void execute(ClientTransactionHandler client, IBinder token, + PendingTransactionActions pendingActions) { Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityDestroy"); client.handleDestroyActivity(token, mFinished, mConfigChanges, false /* getNonConfigInstance */); @@ -47,7 +43,31 @@ public class DestroyActivityItem extends ActivityLifecycleItem { @Override public int getTargetState() { - return DESTROYED; + return ON_DESTROY; + } + + + // ObjectPoolItem implementation + + private DestroyActivityItem() {} + + /** Obtain an instance initialized with provided params. */ + public static DestroyActivityItem obtain(boolean finished, int configChanges) { + DestroyActivityItem instance = ObjectPool.obtain(DestroyActivityItem.class); + if (instance == null) { + instance = new DestroyActivityItem(); + } + instance.mFinished = finished; + instance.mConfigChanges = configChanges; + + return instance; + } + + @Override + public void recycle() { + mFinished = false; + mConfigChanges = 0; + ObjectPool.recycle(this); } @@ -96,4 +116,10 @@ public class DestroyActivityItem extends ActivityLifecycleItem { result = 31 * result + mConfigChanges; return result; } + + @Override + public String toString() { + return "DestroyActivityItem{finished=" + mFinished + ",mConfigChanges=" + + mConfigChanges + "}"; + } } |