Skip to content

Latest commit

 

History

History
45 lines (35 loc) · 1.05 KB

how_to_get_activity_instance_inside_test.md

File metadata and controls

45 lines (35 loc) · 1.05 KB

#How to get Activity instance inside Test.

###Declare Field

private Activity currentActivity;

###Get the activity at any point in the Test

getActivityInstance();

###Declare Private Method

public Activity getActivityInstance(){
        getInstrumentation().runOnMainSync(new Runnable() {
            public void run() {
                Collection resumedActivities = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(RESUMED);
                if (resumedActivities.iterator().hasNext()){
                    currentActivity = (Activity) resumedActivities.iterator().next();
                }
            }
        });

        return currentActivity;
}

##Use Case

It is useful for modifying views on the main thread while testing:

private void setPin(final String pin) {
        currentActivity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                ((PinEntryView)currentActivity.findViewById(R.id.pin_view)).setText(pin);
            }
        });
    }