public class ActivityCompat
extends ContextCompat
java.lang.Object | ||
↳ | android.support.v4.content.ContextCompat | |
↳ | android.support.v4.app.ActivityCompat |
Known Direct Subclasses |
Helper用于访问以向后兼容的方式在API级别4之后引入的 Activity
功能。
Nested classes |
|
---|---|
interface |
ActivityCompat.OnRequestPermissionsResultCallback 该接口是用于接收许可请求结果的合同。 |
Public constructors |
|
---|---|
ActivityCompat() |
Public methods |
|
---|---|
static void |
finishAffinity(Activity activity) 完成此活动,并尝试完成当前任务中具有相同关联性的所有活动。 |
static void |
finishAfterTransition(Activity activity) 反转活动场景条目转换并触发调用活动以反转其退出转换。 |
Uri |
getReferrer(Activity activity) 向后兼容 |
static boolean |
invalidateOptionsMenu(Activity activity) 如果能够使活动的选项菜单无效。 |
static void |
postponeEnterTransition(Activity activity) |
static void |
requestPermissions(Activity activity, String[] permissions, int requestCode) 请求授予此应用程序的权限。 |
static void |
setEnterSharedElementCallback(Activity activity, SharedElementCallback callback) 当使用 |
static void |
setExitSharedElementCallback(Activity activity, SharedElementCallback callback) 当使用 |
static boolean |
shouldShowRequestPermissionRationale(Activity activity, String permission) 获取是否应该以请求许可的理由显示UI。 |
static void |
startActivity(Activity activity, Intent intent, Bundle options) 如果可以,请使用其他启动信息启动活动。 |
static void |
startActivityForResult(Activity activity, Intent intent, int requestCode, Bundle options) 如果可以的话,用选项开始新的活动,完成后你会想要结果。 |
static void |
startIntentSenderForResult(Activity activity, IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options) 使用选项启动新的IntentSender(如果有的话),完成后需要结果。 |
static void |
startPostponedEnterTransition(Activity activity) |
Inherited methods |
|
---|---|
From class android.support.v4.content.ContextCompat
|
|
From class java.lang.Object
|
ActivityCompat ()
void finishAffinity (Activity activity)
完成此活动,并尝试完成当前任务中具有相同关联性的所有活动。
在Android 4.1+上调用此方法将调用此方法的本地版本。 对于其他平台finish()
将被调用。
Parameters | |
---|---|
activity |
Activity
|
void finishAfterTransition (Activity activity)
反转活动场景条目转换并触发调用活动以反转其退出转换。 退出转换完成时, finish()
。 如果没有使用转换,则立即调用finish()并运行活动出口转换。
在Android 4.4或更低版本中,此方法仅完成Activity而不进行特殊的退出转换。
Parameters | |
---|---|
activity |
Activity
|
Uri getReferrer (Activity activity)
向后兼容Activity.getReferrer
实现。 如果可用,则使用平台的实现,否则只能退回到从活动意图挖掘任何明确指定的引用者。
Parameters | |
---|---|
activity |
Activity
|
Returns | |
---|---|
Uri |
boolean invalidateOptionsMenu (Activity activity)
如果能够使活动的选项菜单无效。
在API级别11(Android 3.0 / Honeycomb)之前,选项菜单的生命周期主要由用户对硬件菜单键的操作来控制。 当用户首次按下菜单键时,分别通过分别调用onCreateOptionsMenu(android.view.Menu)
和onPrepareOptionsMenu(android.view.Menu)
创建和准备菜单。 随后按下菜单键保持菜单本身的现有实例,并调用onPrepareOptionsMenu(android.view.Menu)
以使活动有机会在显示菜单面板之前在上下文中更改菜单。
在Android 3.0及更高版本中,操作栏强制选项菜单尽早构建,以便在活动首次可见时选择显示为操作的项目。 活动方法invalidateOptionsMenu强制整个菜单被销毁并从onCreateOptionsMenu(android.view.Menu)
重新创建,提供类似的,但更重的机会来改变菜单的内容。 通常这个功能用来支持碎片的配置变化。
应用程序可能会使用此支持帮助程序来指示活动状态的重大更改,这会导致重新生成选项菜单。 如果应用程序在不支持菜单失效的较旧平台版本上运行,则下次用户按下菜单键时该应用程序仍会收到onPrepareOptionsMenu(android.view.Menu)
,此方法将返回false。 如果此方法返回true,则选项菜单已成功失效。
Parameters | |
---|---|
activity |
Activity : Invalidate the options menu of this activity |
Returns | |
---|---|
boolean |
true if this operation was supported and it completed; false if it was not available. |
void postponeEnterTransition (Activity activity)
Parameters | |
---|---|
activity |
Activity
|
void requestPermissions (Activity activity, String[] permissions, int requestCode)
请求授予此应用程序的权限。 这些权限必须在您的清单中请求,它们不应被授予您的应用程序,并且它们应该具有保护级别#PROTECTION_DANGEROUS dangerous
,而不管它们是由平台还是由第三方应用程序声明。
如果在清单中请求,则在安装时授予普通权限PROTECTION_NORMAL
。 签名权限PROTECTION_SIGNATURE
在安装时根据清单中的请求被授予,并且您的应用的签名与声明权限的应用的签名匹配。
如果您的应用程序没有请求的权限,用户将看到用户界面接受它们。 在用户接受或拒绝了所请求的权限后,您将收到一个回调报告,该权限是否被授予。 您的活动必须执行ActivityCompat.OnRequestPermissionsResultCallback
,并将权限请求的结果传递给其onRequestPermissionsResult(int, String[], int[])
方法。
请注意,请求权限并不能保证它将被授予,并且您的应用程序应该能够在没有此权限的情况下运行。
此方法可能会启动一项活动,允许用户选择授予哪些权限以及拒绝哪些权限。 因此,您应该准备好您的活动可能会暂停并恢复。 此外,授予某些权限可能需要重新启动应用程序。 在这种情况下,系统会在将结果传递给onRequestPermissionsResult(int,String [],int [])之前重新创建活动堆栈。
在检查您是否有权 checkSelfPermission(android.content.Context, String)
您应该使用 checkSelfPermission(android.content.Context, String)
。
调用此API以获得已授予您应用程序的权限将向用户显示UI,以决定应用程序是否仍可以拥有这些权限。 如果您的应用程序使用受权限更改保护的数据的方式显着,这可能很有用。
Parameters | |
---|---|
activity |
Activity : The target activity. |
permissions |
String : The requested permissions. |
requestCode |
int : Application specific request code to match with a result reported to onRequestPermissionsResult(int, String[], int[]) . |
void setEnterSharedElementCallback (Activity activity, SharedElementCallback callback)
当使用makeSceneTransitionAnimation(Activity, android.view.View, String)
启动Activity时,将调用回调来处理启动的 Activity上的共享元素。 这需要FEATURE_CONTENT_TRANSITIONS
。
Parameters | |
---|---|
activity |
Activity
|
callback |
SharedElementCallback : Used to manipulate shared element transitions on the launched Activity. |
void setExitSharedElementCallback (Activity activity, SharedElementCallback callback)
当使用makeSceneTransitionAnimation(Activity, android.view.View, String)
启动Activity时,将调用回调来处理启动 Activity上的共享元素。 大多数电话只会在从启动的活动返回时才会发生。 这需要FEATURE_CONTENT_TRANSITIONS
。
Parameters | |
---|---|
activity |
Activity
|
callback |
SharedElementCallback : Used to manipulate shared element transitions on the launching Activity. |
boolean shouldShowRequestPermissionRationale (Activity activity, String permission)
获取是否应该以请求许可的理由显示UI。 只有当您没有权限时,您才应该执行此操作,并且请求权限的上下文未明确向用户传达授予此权限的好处。
例如,如果您编写摄像头应用程序,用户就需要请求摄像头权限,并且不需要为什么要求摄像头。 然而,如果应用程序需要位置来标记照片,那么非技术精明的用户可能想知道位置如何与拍照相关。 在这种情况下,您可以选择以请求此权限的理由显示UI。
Parameters | |
---|---|
activity |
Activity : The target activity. |
permission |
String : A permission your app wants to request. |
Returns | |
---|---|
boolean |
Whether you can show permission rationale UI. |
void startActivity (Activity activity, Intent intent, Bundle options)
如果可以,请使用其他启动信息启动活动。
在Android 4.1+中引入了更多选项,以便更好地控制活动启动动画。 应用程序可以使用此方法以及ActivityOptionsCompat
在可用时使用这些动画。 当在不存在此功能的平台版本上运行时,活动将正常启动。
Parameters | |
---|---|
activity |
Activity : Context to launch activity from. |
intent |
Intent : The description of the activity to start. |
options |
Bundle : Additional options for how the Activity should be started. May be null if there are no options. See ActivityOptionsCompat for how to build the Bundle supplied here; there are no supported definitions for building it manually. |
void startActivityForResult (Activity activity, Intent intent, int requestCode, Bundle options)
如果可以的话,用选项开始新的活动,完成后你会想要结果。
在Android 4.1+中引入了更多选项,以便更好地控制活动启动动画。 应用程序可以使用此方法以及ActivityOptionsCompat
在可用时使用这些动画。 当在不存在此功能的平台版本上运行时,活动将正常启动。
Parameters | |
---|---|
activity |
Activity : Origin activity to launch from. |
intent |
Intent : The description of the activity to start. |
requestCode |
int : If >= 0, this code will be returned in onActivityResult() when the activity exits. |
options |
Bundle : Additional options for how the Activity should be started. May be null if there are no options. See ActivityOptionsCompat for how to build the Bundle supplied here; there are no supported definitions for building it manually. |
void startIntentSenderForResult (Activity activity, IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)
使用选项启动新的IntentSender(如果有的话),完成后需要结果。
在Android 4.1+中引入了更多选项,以便更好地控制活动启动动画。 应用程序可以使用此方法以及ActivityOptionsCompat
在可用时使用这些动画。 当在不存在此功能的平台版本上运行时,活动将正常启动。
Parameters | |
---|---|
activity |
Activity : Origin activity to launch from. |
intent |
IntentSender : The IntentSender to launch. |
requestCode |
int : If >= 0, this code will be returned in onActivityResult() when the activity exits. |
fillInIntent |
Intent : If non-null, this will be provided as the intent parameter to sendIntent(Context, int, Intent, IntentSender.OnFinished, Handler) . |
flagsMask |
int : Intent flags in the original IntentSender that you would like to change. |
flagsValues |
int : Desired values for any bits set in flagsMask |
extraFlags |
int : Always set to 0. |
options |
Bundle : Additional options for how the Activity should be started. May be null if there are no options. See ActivityOptionsCompat for how to build the Bundle supplied here; there are no supported definitions for building it manually. |
Throws | |
---|---|
IntentSender.SendIntentException |
void startPostponedEnterTransition (Activity activity)
Parameters | |
---|---|
activity |
Activity
|