| java.lang.Object | |||
| ↳ | android.app.Instrumentation | ||
| ↳ | android.support.test.internal.runner.hidden.ExposedInstrumentationApi | ||
| ↳ | android.support.test.runner.MonitoringInstrumentation | ||
|
|
An instrumentation that enables several advanced features and makes some hard guarantees about the state of the application under instrumentation.
A short list of these capabilities:| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| MonitoringInstrumentation.ActivityFinisher | Loops through all the activities that have not yet finished and explicitly calls finish on them. | ||||||||||
|
[Expand]
Inherited Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
This API was added in Android API 17 (JELLY_BEAN_MR1)
| |||||||||||
This API was added in Android API 23 (M)
| |||||||||||
Ensures all activities launched in this instrumentation are finished before the
instrumentation exits.
| |||||||||||
Use the given InterceptingActivityFactory to create Activity instance in
newActivity(ClassLoader, String, Intent). | |||||||||||
Sets up lifecycle monitoring, and argument registry.
| |||||||||||
This implementation of onStart() will guarantee that the Application's onCreate method
has completed when it returns.
| |||||||||||
Use default mechanism of creating activity instance in
newActivity(ClassLoader, String, Intent)
| |||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Perform application MultiDex installation only when instrumentation installation is not
available.
| |||||||||||
Checks whether this instance of instrumentation should be considered as a primary
instrumentation process.
| |||||||||||
Helper function for various runners who extend from this class to be able to reflectively
invoke the class#method that was passed in via "remoteMethod" runner argument.
| |||||||||||
Ensures we've onStopped() all activities which were onStarted().
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| From class android.support.test.internal.runner.hidden.ExposedInstrumentationApi | |||||||||||
|
| |||||||||||
|
| |||||||||||
| Parameters | |
|---|---|
activity |
Activity |
bundle |
Bundle |
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
Activity |
intents |
Intent |
options |
Bundle |
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
Fragment |
intent |
Intent |
requestCode |
int |
options |
Bundle |
| Returns | |
|---|---|
Instrumentation.ActivityResult |
|
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
Activity |
intent |
Intent |
requestCode |
int |
options |
Bundle |
| Returns | |
|---|---|
Instrumentation.ActivityResult |
|
This API was added in Android API 17 (JELLY_BEAN_MR1)
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
Activity |
intent |
Intent |
requestCode |
int |
options |
Bundle |
user |
UserHandle |
| Returns | |
|---|---|
Instrumentation.ActivityResult |
|
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
Activity |
intent |
Intent |
requestCode |
int |
| Returns | |
|---|---|
Instrumentation.ActivityResult |
|
This API was added in Android API 23 (M)
| Parameters | |
|---|---|
who |
Context |
contextThread |
IBinder |
token |
IBinder |
target |
String |
intent |
Intent |
requestCode |
int |
options |
Bundle |
| Returns | |
|---|---|
Instrumentation.ActivityResult |
|
Ensures all activities launched in this instrumentation are finished before the instrumentation exits.
Subclasses who override this method should do their finish processing and then call super.finish to invoke this logic. Not waiting for all activities to finish() before exiting can cause device wide instability.
| Parameters | |
|---|---|
resultCode |
int |
results |
Bundle |
Use the given InterceptingActivityFactory to create Activity instance in newActivity(ClassLoader, String, Intent). This can be used to override default behavior of
activity in tests e.g. mocking startService() method in Activity under test, to avoid starting
the real service and instead verifying that a particular service was started.
| Parameters | |
|---|---|
interceptingActivityFactory |
InterceptingActivityFactory: InterceptingActivityFactory to be used for creating activity
instance in newActivity(ClassLoader, String, Intent)
|
| Parameters | |
|---|---|
clazz |
Class |
context |
Context |
token |
IBinder |
application |
Application |
intent |
Intent |
info |
ActivityInfo |
title |
CharSequence |
parent |
Activity |
id |
String |
lastNonConfigurationInstance |
Object |
| Returns | |
|---|---|
Activity |
|
| Throws | |
|---|---|
InstantiationException |
|
IllegalAccessException |
|
| Parameters | |
|---|---|
cl |
ClassLoader |
className |
String |
intent |
Intent |
| Returns | |
|---|---|
Activity |
|
| Throws | |
|---|---|
InstantiationException |
|
IllegalAccessException |
|
ClassNotFoundException |
|
Sets up lifecycle monitoring, and argument registry.
Subclasses must call up to onCreate(). This onCreate method does not call start() it is the subclasses responsibility to call start if it desires.
| Parameters | |
|---|---|
arguments |
Bundle |
| Parameters | |
|---|---|
obj |
Object |
e |
Throwable |
| Returns | |
|---|---|
boolean |
|
This implementation of onStart() will guarantee that the Application's onCreate method has completed when it returns.
Subclasses should call super.onStart() before executing any code that touches the application and it's state.
Use default mechanism of creating activity instance in newActivity(ClassLoader, String, Intent)
Perform application MultiDex installation only when instrumentation installation is not available. Called when MultiDex class is available but MultiDex.installInstrumentation is not.
| Parameters | |
|---|---|
multidexClass |
Class |
| Throws | |
|---|---|
NoSuchMethodException |
|
InvocationTargetException |
|
IllegalAccessException |
|
Checks whether this instance of instrumentation should be considered as a primary instrumentation process.
| Parameters | |
|---|---|
argsProcessName |
String: the process name passed in via test runner args |
| Returns | |
|---|---|
boolean |
true if the given process is the primary instrumentation process
|
Helper function for various runners who extend from this class to be able to reflectively invoke the class#method that was passed in via "remoteMethod" runner argument.
| Parameters | |
|---|---|
methodName |
RunnerArgs.TestArg: the fully qualified method to invoke (cannot be null).
|
Ensures we've onStopped() all activities which were onStarted().
According to Activity's contract, the process is not killable between onStart and onStop. Breaking this contract (which finish() will if you let it) can cause bad behaviour (including a full restart of system_server).
We give the app 2 seconds to stop all its activities, then we proceed.
This should never be run on the main thread.