Espresso拿當下的Activity

在透過Espresso測toast需要拿到當下畫面的Activity,而透過mActivityRule就只能拿到啟動畫面的Activity。

Activity getCurrentActivity() throws Throwable {
  getInstrumentation().waitForIdleSync();
  final Activity[] activity = new Activity[1];
  runTestOnUiThread(new Runnable() {
    @Override
    public void run() {
      java.util.Collection<Activity> activities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
      activity[0] = Iterables.getOnlyElement(activities);
  }});
  return activity[0];
}

透過上面的方式,就可以拿到當下畫面的Activity。

參考
Get Current Activity in Espresso android 

留言