Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

ActivityScenario.ActivityAction

public static interface ActivityScenario.ActivityAction

androidx.test.core.app.ActivityScenario.ActivityAction<A extends android.app.Activity>


ActivityAction interface should be implemented by any class whose instances are intended to be executed by the main thread. An Activity that is instrumented by the ActivityScenario is passed to perform(A) method.

Example:
   ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
   scenario.onActivity(activity -> {
     assertThat(activity.getSomething()).isEqualTo("something");
   });
 

You should never keep the Activity reference. It should only be accessed in perform(A) scope for two reasons: 1) Android framework may re-create the Activity during lifecycle changes, your holding reference might be stale. 2) It increases the reference counter and it may affect to the framework behavior, especially after you finish the Activity.

Bad Example:
   ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
   final MyActivity[] myActivityHolder = new MyActivity[1];
   scenario.onActivity(activity -> {
     myActivityHolder[0] = activity;
   });
   assertThat(myActivityHolder[0].getSomething()).isEqualTo("something");
 

Summary

Public methods

abstract void perform(A activity)

This method is invoked on the main thread with the reference to the Activity.

Public methods

perform

void perform (A activity)

This method is invoked on the main thread with the reference to the Activity.

Parameters
activity A: an Activity instrumented by the ActivityScenario. It never be null.