diff --git a/tests/framework/base/windowmanager/intent_tests/forResult/single-instance_for-result.json b/tests/framework/base/windowmanager/intent_tests/forResult/single-instance_for-result.json
deleted file mode 100644
index 78fe375..0000000
--- a/tests/framework/base/windowmanager/intent_tests/forResult/single-instance_for-result.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-    "setup": {
-        "initialIntents": [
-            {
-                "flags": "FLAG_ACTIVITY_NEW_TASK",
-                "class": "android.server.wm.intent.Activities$TaskAffinity1Activity",
-                "package": "android.server.wm.cts",
-                "startForResult": false
-            }
-        ],
-        "act": [
-            {
-                "flags": "",
-                "class": "android.server.wm.intent.Activities$SingleInstanceActivity",
-                "package": "android.server.wm.cts",
-                "startForResult": true
-            }
-        ]
-    },
-    "initialState": {
-        "stacks": [
-            {
-                "tasks": [
-                    {
-                        "activities": [
-                            {
-                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$TaskAffinity1Activity",
-                                "state": "RESUMED"
-                            }
-                        ]
-                    }
-                ],
-                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$TaskAffinity1Activity"
-            }
-        ]
-    },
-    "endState": {
-        "stacks": [
-            {
-                "tasks": [
-                    {
-                        "activities": [
-                            {
-                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleInstanceActivity",
-                                "state": "RESUMED"
-                            }
-                        ]
-                    }
-                ],
-                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleInstanceActivity"
-            },
-            {
-                "tasks": [
-                    {
-                        "activities": [
-                            {
-                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$TaskAffinity1Activity",
-                                "state": "STOPPED"
-                            }
-                        ]
-                    }
-                ]
-            }
-        ]
-    }
-}
diff --git a/tests/framework/base/windowmanager/intent_tests/forResult/single-top_for-result.json b/tests/framework/base/windowmanager/intent_tests/forResult/single-top_for-result.json
deleted file mode 100644
index a288a9e..0000000
--- a/tests/framework/base/windowmanager/intent_tests/forResult/single-top_for-result.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-    "setup": {
-        "initialIntents": [
-            {
-                "flags": "FLAG_ACTIVITY_NEW_TASK",
-                "class": "android.server.wm.intent.Activities$SingleTopActivity",
-                "package": "android.server.wm.cts",
-                "startForResult": false
-            }
-        ],
-        "act": [
-            {
-                "flags": "",
-                "class": "android.server.wm.intent.Activities$SingleTopActivity",
-                "package": "android.server.wm.cts",
-                "startForResult": true
-            }
-        ]
-    },
-    "initialState": {
-        "stacks": [
-            {
-                "tasks": [
-                    {
-                        "activities": [
-                            {
-                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity",
-                                "state": "RESUMED"
-                            }
-                        ]
-                    }
-                ],
-                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity"
-            }
-        ]
-    },
-    "endState": {
-        "stacks": [
-            {
-                "tasks": [
-                    {
-                        "activities": [
-                            {
-                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity",
-                                "state": "RESUMED"
-                            }
-                        ]
-                    }
-                ],
-                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity"
-            }
-        ]
-    }
-}
diff --git a/tests/framework/base/windowmanager/intent_tests/forResult/test-2.json b/tests/framework/base/windowmanager/intent_tests/forResult/test-2.json
index a80e56b..6e97377 100644
--- a/tests/framework/base/windowmanager/intent_tests/forResult/test-2.json
+++ b/tests/framework/base/windowmanager/intent_tests/forResult/test-2.json
@@ -43,6 +43,10 @@
                             {
                                 "name": "android.server.wm.cts\/android.server.wm.intent.Activities$RegularActivity",
                                 "state": "RESUMED"
+                            },
+                            {
+                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$RegularActivity",
+                                "state": "STOPPED"
                             }
                         ]
                     }
diff --git a/tests/framework/base/windowmanager/intent_tests/forResult/test-4.json b/tests/framework/base/windowmanager/intent_tests/forResult/test-4.json
index a288a9e..2ed6023 100644
--- a/tests/framework/base/windowmanager/intent_tests/forResult/test-4.json
+++ b/tests/framework/base/windowmanager/intent_tests/forResult/test-4.json
@@ -43,6 +43,10 @@
                             {
                                 "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity",
                                 "state": "RESUMED"
+                            },
+                            {
+                                "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleTopActivity",
+                                "state": "STOPPED"
                             }
                         ]
                     }
diff --git a/tests/framework/base/windowmanager/intent_tests/newTask/test-15.json b/tests/framework/base/windowmanager/intent_tests/newTask/test-15.json
index be49412..33419d6 100644
--- a/tests/framework/base/windowmanager/intent_tests/newTask/test-15.json
+++ b/tests/framework/base/windowmanager/intent_tests/newTask/test-15.json
@@ -43,23 +43,15 @@
                             {
                                 "name": "android.server.wm.cts\/android.server.wm.intent.Activities$RegularActivity",
                                 "state": "RESUMED"
-                            }
-                        ]
-                    }
-                ],
-                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$RegularActivity"
-            },
-            {
-                "tasks": [
-                    {
-                        "activities": [
+                            },
                             {
                                 "name": "android.server.wm.cts\/android.server.wm.intent.Activities$SingleInstanceActivity",
                                 "state": "STOPPED"
                             }
                         ]
                     }
-                ]
+                ],
+                "resumedActivity": "android.server.wm.cts\/android.server.wm.intent.Activities$RegularActivity"
             }
         ]
     }
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java b/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
index e4cb869..9ba003c 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/intent/Activities.java
@@ -17,7 +17,6 @@
 package android.server.wm.intent;
 
 import android.app.Activity;
-import android.os.Bundle;
 
 /**
  * A collection of activities with various launch modes used in the intent tests.
@@ -28,68 +27,60 @@
  */
 public class Activities {
 
-    private static class BaseActivity extends Activity {
-        @Override
-        protected void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setTitle(getClass().getSimpleName());
-        }
+    public static class TrackerActivity extends Activity {
     }
 
-    public static class TrackerActivity extends BaseActivity {
+    public static class RegularActivity extends Activity {
     }
 
-    public static class RegularActivity extends BaseActivity {
+    public static class SingleTopActivity extends Activity {
     }
 
-    public static class SingleTopActivity extends BaseActivity {
+    public static class SingleInstanceActivity extends Activity {
     }
 
-    public static class SingleInstanceActivity extends BaseActivity {
+    public static class SingleInstanceActivity2 extends Activity {
     }
 
-    public static class SingleInstanceActivity2 extends BaseActivity {
+    public static class SingleTaskActivity extends Activity {
     }
 
-    public static class SingleTaskActivity extends BaseActivity {
+    public static class SingleTaskActivity2 extends Activity {
     }
 
-    public static class SingleTaskActivity2 extends BaseActivity {
+    public static class TaskAffinity1Activity extends Activity {
     }
 
-    public static class TaskAffinity1Activity extends BaseActivity {
+    public static class TaskAffinity1Activity2 extends Activity {
     }
 
-    public static class TaskAffinity1Activity2 extends BaseActivity {
+    public static class TaskAffinity2Activity extends Activity {
     }
 
-    public static class TaskAffinity2Activity extends BaseActivity {
+    public static class TaskAffinity3Activity extends Activity {
     }
 
-    public static class TaskAffinity3Activity extends BaseActivity {
+    public static class ClearTaskOnLaunchActivity extends Activity {
     }
 
-    public static class ClearTaskOnLaunchActivity extends BaseActivity {
+    public static class DocumentLaunchIntoActivity extends Activity {
     }
 
-    public static class DocumentLaunchIntoActivity extends BaseActivity {
+    public static class DocumentLaunchAlwaysActivity extends Activity {
     }
 
-    public static class DocumentLaunchAlwaysActivity extends BaseActivity {
+    public static class DocumentLaunchNeverActivity extends Activity {
     }
 
-    public static class DocumentLaunchNeverActivity extends BaseActivity {
+    public static class NoHistoryActivity extends Activity {
     }
 
-    public static class NoHistoryActivity extends BaseActivity {
+    public static class LauncherActivity extends Activity {
     }
 
-    public static class LauncherActivity extends BaseActivity {
+    public static class RelinquishTaskIdentityActivity extends Activity {
     }
 
-    public static class RelinquishTaskIdentityActivity extends BaseActivity {
-    }
-
-    public static class TaskAffinity1RelinquishTaskIdentityActivity extends BaseActivity {
+    public static class TaskAffinity1RelinquishTaskIdentityActivity extends Activity {
     }
 }
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/intent/LaunchRunner.java b/tests/framework/base/windowmanager/src/android/server/wm/intent/LaunchRunner.java
index 950047d..9e1d67a 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/intent/LaunchRunner.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/intent/LaunchRunner.java
@@ -264,11 +264,6 @@
 
         if (activity == null) {
             return activityContext;
-        } else if (startForResult && activityContext == activity) {
-            // The result might have send back to caller activity and forced the caller activity
-            // to resumed again, before the started activity actually resumed. Just wait for idle
-            // for that case.
-            getInstrumentation().waitForIdleSync();
         } else {
             waitAndAssertActivityLaunched(activity, intent);
         }
