}
boolean reportResumedActivityLocked(ActivityRecord r) {
+ // A resumed activity cannot be stopping. remove from list
+ mStoppingActivities.remove(r);
+
final ActivityStack stack = r.getStack();
if (isFocusedStack(stack)) {
mService.updateUsageStats(r, true);
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import android.content.ComponentName;
import android.graphics.Rect;
assertTrue(stackTasks.contains(task));
}
}
+
+ /**
+ * Ensures that an activity is removed from the stopping activities list once it is resumed.
+ */
+ @Test
+ public void testStoppingActivityRemovedWhenResumed() throws Exception {
+ final ActivityManagerService service = createActivityManagerService();
+ final TaskRecord firstTask = createTask(service, testActivityComponent,
+ FULLSCREEN_WORKSPACE_STACK_ID);
+ final ActivityRecord firstActivity = createActivity(service, testActivityComponent,
+ firstTask);
+ service.mStackSupervisor.mStoppingActivities.add(firstActivity);
+
+ firstActivity.completeResumeLocked();
+
+ assertFalse(service.mStackSupervisor.mStoppingActivities.contains(firstActivity));
+ }
}