public class ActivityOptionsCompat extends Object
ActivityOptions
introduced in API level 16 in a backwards compatible fashion.Modifier and Type | Field and Description |
---|---|
static String |
EXTRA_USAGE_TIME_REPORT
A long in the extras delivered by
requestUsageTimeReport(android.app.PendingIntent) that contains
the total time (in ms) the user spent in the app flow. |
static String |
EXTRA_USAGE_TIME_REPORT_PACKAGES
A Bundle in the extras delivered by
requestUsageTimeReport(android.app.PendingIntent) that contains
detailed information about the time spent in each package associated with the app;
each key is a package name, whose value is a long containing the time (in ms). |
Modifier | Constructor and Description |
---|---|
protected |
ActivityOptionsCompat() |
Modifier and Type | Method and Description |
---|---|
Rect |
getLaunchBounds()
Returns the bounds that should be used to launch the activity.
|
static ActivityOptionsCompat |
makeBasic()
Create a basic ActivityOptions that has no special animation associated with it.
|
static ActivityOptionsCompat |
makeClipRevealAnimation(View source,
int startX,
int startY,
int width,
int height)
Create an ActivityOptions specifying an animation where the new
activity is revealed from a small originating area of the screen to
its final full representation.
|
static ActivityOptionsCompat |
makeCustomAnimation(Context context,
int enterResId,
int exitResId)
Create an ActivityOptions specifying a custom animation to run when the
activity is displayed.
|
static ActivityOptionsCompat |
makeScaleUpAnimation(View source,
int startX,
int startY,
int startWidth,
int startHeight)
Create an ActivityOptions specifying an animation where the new activity is
scaled from a small originating area of the screen to its final full
representation.
|
static ActivityOptionsCompat |
makeSceneTransitionAnimation(Activity activity,
Pair<View,String>... sharedElements)
Create an ActivityOptions to transition between Activities using cross-Activity scene
animations.
|
static ActivityOptionsCompat |
makeSceneTransitionAnimation(Activity activity,
View sharedElement,
String sharedElementName)
Create an ActivityOptions to transition between Activities using cross-Activity scene
animations.
|
static ActivityOptionsCompat |
makeTaskLaunchBehind()
If set along with Intent.FLAG_ACTIVITY_NEW_DOCUMENT then the task being launched will not be
presented to the user but will instead be only available through the recents task list.
|
static ActivityOptionsCompat |
makeThumbnailScaleUpAnimation(View source,
Bitmap thumbnail,
int startX,
int startY)
Create an ActivityOptions specifying an animation where a thumbnail is
scaled from a given position to the new activity window that is being
started.
|
void |
requestUsageTimeReport(PendingIntent receiver)
Ask the the system track that time the user spends in the app being launched, and
report it back once done.
|
ActivityOptionsCompat |
setLaunchBounds(Rect screenSpacePixelRect)
Sets the bounds (window size) that the activity should be launched in.
|
Bundle |
toBundle()
Returns the created options as a Bundle, which can be passed to
ContextCompat.startActivity(Context, android.content.Intent, Bundle) . |
void |
update(ActivityOptionsCompat otherOptions)
Update the current values in this ActivityOptions from those supplied in
otherOptions.
|
public static final String EXTRA_USAGE_TIME_REPORT
requestUsageTimeReport(android.app.PendingIntent)
that contains
the total time (in ms) the user spent in the app flow.public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES
requestUsageTimeReport(android.app.PendingIntent)
that contains
detailed information about the time spent in each package associated with the app;
each key is a package name, whose value is a long containing the time (in ms).public static ActivityOptionsCompat makeCustomAnimation(Context context, int enterResId, int exitResId)
context
- Who is defining this. This is the application that the
animation resources will be loaded from.enterResId
- A resource ID of the animation resource to use for the
incoming activity. Use 0 for no animation.exitResId
- A resource ID of the animation resource to use for the
outgoing activity. Use 0 for no animation.public static ActivityOptionsCompat makeScaleUpAnimation(View source, int startX, int startY, int startWidth, int startHeight)
Intent.setSourceBounds(android.graphics.Rect)
,
those bounds will be filled in for you based on the initial bounds passed
in here.source
- The View that the new activity is animating from. This
defines the coordinate space for startX and startY.startX
- The x starting location of the new activity, relative to
source.startY
- The y starting location of the activity, relative to source.startWidth
- The initial width of the new activity.startHeight
- The initial height of the new activity.public static ActivityOptionsCompat makeClipRevealAnimation(View source, int startX, int startY, int width, int height)
source
- The View that the new activity is animating from. This
defines the coordinate space for startX and startY.startX
- The x starting location of the new activity, relative to source.startY
- The y starting location of the activity, relative to source.width
- The initial width of the new activity.height
- The initial height of the new activity.public static ActivityOptionsCompat makeThumbnailScaleUpAnimation(View source, Bitmap thumbnail, int startX, int startY)
Intent.setSourceBounds(android.graphics.Rect)
,
those bounds will be filled in for you based on the initial thumbnail
location and size provided here.source
- The View that this thumbnail is animating from. This
defines the coordinate space for startX and startY.thumbnail
- The bitmap that will be shown as the initial thumbnail
of the animation.startX
- The x starting location of the bitmap, relative to source.startY
- The y starting location of the bitmap, relative to source.public static ActivityOptionsCompat makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName)
sharedElement
will be used as the epicenter for the
exit Transition. The position of the shared element in the launched Activity will be the
epicenter of its entering Transition.
This requires Window.FEATURE_CONTENT_TRANSITIONS
to be
enabled on the calling Activity to cause an exit transition. The same must be in
the called Activity to get an entering transition.
activity
- The Activity whose window contains the shared elements.sharedElement
- The View to transition to the started Activity. sharedElement must
have a non-null sharedElementName.sharedElementName
- The shared element name as used in the target Activity. This may
be null if it has the same name as sharedElement.public static ActivityOptionsCompat makeSceneTransitionAnimation(Activity activity, Pair<View,String>... sharedElements)
This requires Window.FEATURE_CONTENT_TRANSITIONS
to be
enabled on the calling Activity to cause an exit transition. The same must be in
the called Activity to get an entering transition.
activity
- The Activity whose window contains the shared elements.sharedElements
- The names of the shared elements to transfer to the called
Activity and their associated Views. The Views must each have
a unique shared element name.public static ActivityOptionsCompat makeTaskLaunchBehind()
This behavior is not supported for activities with
launchMode
values of
singleInstance
or singleTask
.
public static ActivityOptionsCompat makeBasic()
public ActivityOptionsCompat setLaunchBounds(@Nullable Rect screenSpacePixelRect)
NOTE: This value is ignored on devices that don't have
PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT
or
PackageManager.FEATURE_PICTURE_IN_PICTURE
enabled.
screenSpacePixelRect
- Launch bounds to use for the activity or null for fullscreen.@Nullable public Rect getLaunchBounds()
setLaunchBounds(Rect)
public Bundle toBundle()
ContextCompat.startActivity(Context, android.content.Intent, Bundle)
.
Note that the returned Bundle is still owned by the ActivityOptions
object; you must not modify it, but can supply it to the startActivity
methods that take an options Bundle.public void update(ActivityOptionsCompat otherOptions)
public void requestUsageTimeReport(PendingIntent receiver)
EXTRA_USAGE_TIME_REPORT
and EXTRA_USAGE_TIME_REPORT_PACKAGES
filled in.
The time interval tracked is from launching this activity until the user leaves that activity's flow. They are considered to stay in the flow as long as new activities are being launched or returned to from the original flow, even if this crosses package or task boundaries. For example, if the originator starts an activity to view an image, and while there the user selects to share, which launches their email app in a new task, and they complete the share, the time during that entire operation will be included until they finally hit back from the original image viewer activity.
The user is considered to complete a flow once they switch to another activity that is not part of the tracked flow. This may happen, for example, by using the notification shade, launcher, or recents to launch or switch to another app. Simply going in to these navigation elements does not break the flow (although the launcher and recents stops time tracking of the session); it is the act of going somewhere else that completes the tracking.
receiver
- A broadcast receiver that willl receive the report.