void monitorActivities() { if(activityMonitor != null){ Activity activity = activityMonitor.waitForActivityWithTimeout(2000L); if(activity != null){ if (activitiesStoredInActivityStack.remove(activity.toString())){ removeActivityFromStack(activity); } if(!activity.isFinishing()){ addActivityToStack(activity); } } } }
/** * Waits for the given {@link Activity}. * * @param activityClass the class of the {@code Activity} to wait for * @param timeout the amount of time in milliseconds to wait * @return {@code true} if {@code Activity} appears before the timeout and {@code false} if it does not * */ public boolean waitForActivity(Class<? extends Activity> activityClass, int timeout){ if(isActivityMatching(activityClass, activityUtils.getCurrentActivity(false, false))){ return true; } boolean foundActivity = false; ActivityMonitor activityMonitor = getActivityMonitor(); long currentTime = SystemClock.uptimeMillis(); final long endTime = currentTime + timeout; while(currentTime < endTime){ Activity currentActivity = activityMonitor.waitForActivityWithTimeout(endTime - currentTime); if(currentActivity != null && currentActivity.getClass().equals(activityClass)) { foundActivity = true; break; } currentTime = SystemClock.uptimeMillis(); } removeMonitor(activityMonitor); return foundActivity; }
/** * Waits for the given {@link Activity}. * * @param name the name of the {@code Activity} to wait for e.g. {@code "MyActivity"} * @param timeout the amount of time in milliseconds to wait * @return {@code true} if {@code Activity} appears before the timeout and {@code false} if it does not * */ public boolean waitForActivity(String name, int timeout){ if(isActivityMatching(activityUtils.getCurrentActivity(false, false), name)){ return true; } boolean foundActivity = false; ActivityMonitor activityMonitor = getActivityMonitor(); long currentTime = SystemClock.uptimeMillis(); final long endTime = currentTime + timeout; while(currentTime < endTime){ Activity currentActivity = activityMonitor.waitForActivityWithTimeout(endTime - currentTime); if(isActivityMatching(currentActivity, name)){ foundActivity = true; break; } currentTime = SystemClock.uptimeMillis(); } removeMonitor(activityMonitor); return foundActivity; }
/** * Waits for the given {@link Activity}. * * @param activityClass the class of the {@code Activity} to wait for * @param timeout the amount of time in milliseconds to wait * @return {@code true} if {@code Activity} appears before the timeout and {@code false} if it does not * */ public boolean waitForActivity(Class<? extends Activity> activityClass, int timeout){ if(isActivityMatching(activityClass, activityUtils.getCurrentActivity(false, false))){ return true; } boolean foundActivity = false; ActivityMonitor activityMonitor = getActivityMonitor(); long currentTime = SystemClock.uptimeMillis(); final long endTime = currentTime + timeout; while(currentTime < endTime){ Activity currentActivity = activityMonitor.waitForActivityWithTimeout(endTime - currentTime); if(currentActivity != null && currentActivity.getClass().equals(activityClass)) { foundActivity = true; break; } currentTime = SystemClock.uptimeMillis(); } removeMonitor(activityMonitor); return foundActivity; }
/** * Waits for the given {@link Activity}. * * @param name the name of the {@code Activity} to wait for e.g. {@code "MyActivity"} * @param timeout the amount of time in milliseconds to wait * @return {@code true} if {@code Activity} appears before the timeout and {@code false} if it does not * */ public boolean waitForActivity(String name, int timeout){ if(isActivityMatching(activityUtils.getCurrentActivity(false, false), name)){ return true; } boolean foundActivity = false; ActivityMonitor activityMonitor = getActivityMonitor(); long currentTime = SystemClock.uptimeMillis(); final long endTime = currentTime + timeout; while(currentTime < endTime){ Activity currentActivity = activityMonitor.waitForActivityWithTimeout(endTime - currentTime); if(isActivityMatching(currentActivity, name)){ foundActivity = true; break; } currentTime = SystemClock.uptimeMillis(); } removeMonitor(activityMonitor); return foundActivity; }
public void testKillCreateLifeCycle() throws Throwable { Instrumentation.ActivityMonitor mainActivityMonitor = new Instrumentation.ActivityMonitor(MainActivity.class.getName(), null, false); getInstrumentation().addMonitor(mainActivityMonitor); final Activity activity = getActivity(); mainActivityMonitor.waitForActivityWithTimeout(5000); navigateToFragment(activity); runTestOnUiThread(new Runnable() { @Override public void run() { activity.recreate(); } }); getInstrumentation().waitForIdleSync(); Activity newActivity = mainActivityMonitor.getLastActivity(); assertFragmentIsVisible((FragmentActivity) newActivity, getExpectedFragment()); }
private Instrumentation.ActivityMonitor mBrowserActivityMonitor; protected void setUp() throws Exception { super.setUp(); mBrowserActivityMonitor = new Instrumentation.ActivityMonitor(Browser.class.getName(), null, false); getInstrumentation().addMonitor(mBrowserActivityMonitor); //... } public void testOpen() { //... Activity activity = mBrowserActivityMonitor.waitForActivityWithTimeout(5 * 1000); assertNotNull("Activity was not started", activity); //... }
Instrumentation.ActivityMonitor monitor = getInstrumentation() .addMonitor(Instrumentation.ActivityMonitor.class.getName(), null, false); // Wait for activity to fix inject error; Increase or decrease as needed monitor.waitForActivityWithTimeout(2000); // Should no longer fail TouchUtils.clickView(this, someView);
void monitorActivities() { if(activityMonitor != null){ Activity activity = activityMonitor.waitForActivityWithTimeout(2000L); if(activity != null){ if (activitiesStoredInActivityStack.remove(activity.toString())){ removeActivityFromStack(activity); } if(!activity.isFinishing()){ addActivityToStack(activity); } } } }
@SuppressWarnings("unchecked") public static <T extends Activity> T monitorActivity(@NonNull Class<T> activityClass, int timeOut, @NonNull Runnable runnable) { Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(activityClass.getCanonicalName(), null, false); try { InstrumentationRegistry.getInstrumentation().addMonitor(monitor); runnable.run(); return (T) monitor.waitForActivityWithTimeout(timeOut); } finally { InstrumentationRegistry.getInstrumentation().removeMonitor(monitor); } }