Activity
| Latest Update | Current Stable Release | Next Release Candidate | Beta Release | Alpha Release |
|---|---|---|---|---|
| October 1, 2020 | 1.1.0 | - | 1.2.0-beta01 | - |
Declaring dependencies
To add a dependency on Activity, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
dependencies {
def activity_version = "1.1.0"
// Java language implementation
implementation "androidx.activity:activity:$activity_version"
// Kotlin
implementation "androidx.activity:activity-ktx:$activity_version"
}
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Version 1.2.0
Version 1.2.0-beta01
October 1, 2020
androidx.activity:activity:1.2.0-beta01 and androidx.activity:activity-ktx:1.2.0-beta01 are released. Version 1.2.0-beta01 contains these commits.
Bug Fixes
The
ActivityResultRegistrynow randomly generates integers until it finds one that is unallocated to use as a request coderegister(), thus preventing the possible integer overflow caused by incrementing request codes. (b/168779518)Lifecycleobservers are properly removed when callingunregister()on anActivityResultLauncher. (b/165608393)
Behavior Changes
- The
ActivityResultRegistrynow throws anIllegalStateExceptionwhen attempting to callregister()with aLifecycleOwnerwhoseLifecyclehas already reachedSTARTED. (b/165435866)
Documentation Updated
ContextAwaredocumentation links toLifecycleOwnerto highlightLifecyclecallbacks as the appropriate place for creation and destruction events. (aosp/1414152)
Version 1.2.0-alpha08
August 19, 2020
androidx.activity:activity:1.2.0-alpha08 and androidx.activity:activity-ktx:1.2.0-alpha08 are released. Version 1.2.0-alpha08 contains these commits.
New Features
ComponentActivitynow implementsContextAware, allowing you to add one or moreOnContextAvailableListenerinstances which will receive a callback before the baseActivity.onCreate(). (b/161390636)- A suspending Kotlin extension
withContextAvailable()allows you to run a non-suspending block when the Context becomes available and return a result. (I8290c) - This API is used by
FragmentActivityin Fragment 1.3.0-alpha08 to restore the state of theFragmentManager. Any listeners added to subclasses ofFragmentActivitywill run after that listener. (I513da) - This API is used by
AppCompatActivityin AppCompat 1.3.0-alpha02. Any listeners added to subclasses ofAppCompatActivitywill run after that listener. (I513da)
- A suspending Kotlin extension
Bug Fixes
- Fixed an issue with the
ActivityResultFragmentVersionDetectorLint check that caused it to break when using Lint 27.1.0 or higher. (b/162155191)
Version 1.2.0-alpha07
July 22, 2020
androidx.activity:activity:1.2.0-alpha07 and androidx.activity:activity-ktx:1.2.0-alpha07 are released. Version 1.2.0-alpha07 contains these commits.
New Features
- Added a new
InvalidFragmentVersionForActivityResultlint check that verifies that you are using Fragment1.3.0-alpha07when using the Activity Result API, avoiding runtime crashes due to “invalid request code” issues and non-functioning permission requests caused by using older versions of Fragments. (b/152554847)
External Contribution
- Fixed an
ArrayIndexOutOfBoundsExceptionwhen parsing the results for theRequestPermissionActivity Result contract. (I8f9e3, b/161057605)
Version 1.2.0-alpha06
June 10, 2020
androidx.activity:activity:1.2.0-alpha06 and androidx.activity:activity-ktx:1.2.0-alpha06 are released. Version 1.2.0-alpha06 contains these commits.
New Features
- You can now destructure the
ActivityResultclass in kotlin to directly access therequestCodeandintent. (b/157212935) ActivityResultLaunchernow allows you to get theActivityResultContractthat was used to register the launcher. (b/156875743)
API Changes
- Breaking change: The
invoke()method onActivityResultRegistryhas been renamed toonLaunch(). (b/157496491) - The
OpenMultipleDocumentscontract now returns an empty list instead ofnullto the registered callback if no result is returned. (b/157348014)
Version 1.2.0-alpha05
May 20, 2020
androidx.activity:activity:1.2.0-alpha05 and androidx.activity:activity-ktx:1.2.0-alpha05 are released. Version 1.2.0-alpha05 contains these commits.
New Features
- Added support for
ViewTreeViewModelStoreOwnerfrom Lifecycle2.3.0-alpha03, andViewTreeSavedStateRegistryOwnerfrom SavedState1.1.0-alpha01when using aViewwithin aComponentActivity. (aosp/1297993, aosp/1300264)
API Changes
- The
TakePicturecontract now returns abooleanindicating success rather than a thumbnailBitmapas this was very rarely supported by camera apps when writing the image to the providedUri. (b/154302879) - The
invoke()extensions onActivityResultLauncherhave been removed in favor of explicitly usinglaunch()to better indicate that these are asynchronous operations. Kotlin extensions forlaunchhave been added to theandroidx.activity.resultpackage forActivityResultLauncher<Void>andActivityResultLauncher<Unit>that remove the need to pass innullorUnit, respectively, mirroring that behavior from the previouslyinvoke()extensions. (aosp/1304674, aosp/1304675) - The
IntentSenderRequest.Buildermethods forsetFlagsMask()andsetFlagsValues()has been combined into a singlesetFlags()method. (aosp/1302111)
Bug Fixes
- When registering an
ActivityResultCallbackwith aLifecycleOwner, fixed an issue where the callback would be triggered before the state reachesSTARTED. (aosp/1309744)
Behavior Changes
- The
ActivityResultRegistrynow generates request codes starting at0xFFFFrather than at0, preventing overlap when usingstartActivityForResult()orrequestPermissions()in an activity. (aosp/1302324)
Version 1.2.0-alpha04
April 29, 2020
androidx.activity:activity:1.2.0-alpha04 and androidx.activity:activity-ktx:1.2.0-alpha04 are released. Version 1.2.0-alpha04 contains these commits.
New Features
- Added a contract that can call startIntentSenderForResult to the ActivityResult APIs. (b/153007517)
API Changes
- The
prepareCall()method has been renamed toregisterForActivityResult(), both onComponentActivityhere and in Fragment1.3.0-alpha04. (aosp/1278717) - The
GetContents,OpenDocuments, andRequestPermissionscontracts have been renamed toGetMultipleContents,OpenMultipleDocuments, andRequestMultiplePermissions, respectively. (aosp/1280161) ComponentActivitynow implements theActivityResultRegisteryOwnerinterface. (aosp/1290888)- - The
startActivityForResult()/onActivityResult()andonRequestPermissionsResult()APIs onComponentActivityhave been deprecated. Please use the Activity Result APIs. (b/154751887)
Bug Fixes
- When using the
GetMultipleContentsandOpenMultipleDocumentscontracts and selecting a single item, it is now correctly returned to your callback. (b/152941153)
Version 1.2.0-alpha03
April 1, 2020
androidx.activity:activity:1.2.0-alpha03 and androidx.activity:activity-ktx:1.2.0-alpha03 are released. Version 1.2.0-alpha03 contains these commits.
New Features
- Added the
TakeVideo,PickContact,GetContent,GetContents,OpenDocument,OpenDocuments,OpenDocumentTree, andCreateDocumentcontracts to the set of pre-built contracts provided byActivityResultContracts. (aosp/1262482, aosp/1266916, aosp/1268960) - The Activity Result APIs now support launching an activity for result with an optional
ActivityOptionsCompat. (b/151860054)
API Changes
- The
TakePicturecontract now takes aUriinput for where the image should be stored. The previous contract that does not take any input has been renamed toTakePicturePreview. (aosp/1262482) - The
registerActivityResultCallback()method onActivityResultRegistryhas been renamed toregister(). (aosp/1267621) - The
dispose()method onActivityResultLauncherhas been renamed tounregister()and theunregisterResultCallback()onActivityResultRegistryhas been removed. (aosp/1267621) - The
createIntent()method ofActivityResultContactnow takes aContextin addition to the input to make it possible to create explicit Intents. (aosp/1238800) - An
ActivityResultContractcan now overridegetSynchronousResult()to deliver a result without callingstartActivityForResult. This is used by theRequestPermissionandRequestPermissionscontracts to correctly deliver a ‘granted’ status if the requested permissions are already granted. (b/151110799) - The previously available
Dialcontract has been removed as thatIntentis not meant to be used withstartActivityForResult(). (aosp/1266916) - Many of the Activity Result APIs not meant to be extended are now
final. This includesgetActivityResultRegistry(), theprepareCall()methods, all methods ofActivityResultRegistryexceptinvoke(), and a number of the default contracts that do not support optional extras. (b/152439361)
Bug Fixes
- Fixed a
NullPointerExceptioninActivityResultRegistrywhen attempting to deliver results to a callback that has not yet been re-registered after a configuration change;ActivityResultRegistrynow holds onto these pending results and delivers them when the callback is re-registered. (b/152137004)
Version 1.2.0-alpha02
March 18, 2020
androidx.activity:activity:1.2.0-alpha02 and androidx.activity:activity-ktx:1.2.0-alpha02 are released. Version 1.2.0-alpha02 contains these commits.
New Features
- ActivityResultRegistry:
ComponentActivitynow provides anActivityResultRegistrythat lets you handle thestartActivityForResult()+onActivityResult()as well asrequestPermissions()+onRequestPermissionsResult()flows without overriding methods in your Activity or Fragment, brings increased type safety viaActivityResultContract, and provides hooks for testing these flows. See the updated Getting a Result from an Activity. (b/125158199)
Version 1.2.0-alpha01
March 4, 2020
androidx.activity:activity:1.2.0-alpha01 and androidx.activity:activity-ktx:1.2.0-alpha01 are released. Version 1.2.0-alpha01 contains these commits.
New Features
- Added support for the
ViewTreeLifecycleOwner.get(View)API added in Lifecycle2.3.0-alpha01such that it will return the Activity as theLifecycleOwnerfor any Views directly added to the Activity. (aosp/1182955)
Bug Fixes
- Fixed a regression introduced in Activity
1.1.0when running on older versions of the platform whereonBackPressed()would cause anIllegalStateExceptiondue to a bug in theandroid.app.FragmentManager. (b/146290338)
Version 1.1.0
Version 1.1.0
January 22, 2020
androidx.activity:activity:1.1.0 is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
- Lifecycle ViewModel SavedState Integration:
SavedStateViewModelFactoryis now the default factory used when usingby viewModels(), theViewModelProviderconstructor, orViewModelProviders.of()with aComponentActivityor its subclasses.
Version 1.1.0-rc03
December 4, 2019
androidx.activity:activity:1.1.0-rc03 and androidx.activity:activity-ktx:1.1.0-rc03 are released. Version 1.1.0-rc03 contains these commits.
Dependency changes
- Activity now depends on Lifecycle
2.2.0-rc03and Lifecycle ViewModel SavedState1.0.0-rc03.
Version 1.1.0-rc02
November 7, 2019
androidx.activity:activity:1.1.0-rc02 and androidx.activity:activity-ktx:1.1.0-rc02 are released. Version 1.1.0-rc02 contains these commits.
Dependency changes
- Activity now depends on lifecycle
2.2.0-rc02.
Version 1.1.0-rc01
October 23, 2019
androidx.activity:activity:1.1.0-rc01 and androidx.activity:activity-ktx:1.1.0-rc01 are released with no changes from 1.1.0-beta01. Version 1.1.0-rc01 contains these commits.
Version 1.1.0-beta01
October 9, 2019
androidx.activity:activity:1.1.0-beta01 and androidx.activity:activity-ktx:1.1.0-beta01 are released. Version 1.1.0-beta01 contains these commits.
Dependency changes
- Activity now depends on SavedState 1.0.0 stable.
Version 1.1.0-alpha03
September 5, 2019
androidx.activity:activity:1.1.0-alpha03 and androidx.activity:activity-ktx:1.1.0-alpha03 are released. The commits included in this version can be found here.
New features
- Activity now depends on Core 1.1.0 stable.
Bug fixes
- Activity now depends on Lifecycle
2.2.0-alpha04.
Version 1.1.0-alpha02
August 7, 2019
androidx.activity:activity:1.1.0-alpha02 and androidx.activity:activity-ktx:1.1.0-alpha02 are released. The commits included in this version can be found here.
New features
SavedStateViewModelFactoryis now the default factory used when usingby viewModels(), theViewModelProviderconstructor, orViewModelProviders.of()with aComponentActivity(b/135716331)
Version 1.1.0-alpha01
July 2, 2019
androidx.activity:activity:1.1.0-alpha01 and androidx.activity:activity-ktx:1.1.0-alpha01 are released. The commits included in this version can be found here.
New features
activitynow depends on Lifecycle2.2.0-alpha02. (aosp/1007817)activity-ktxadded a dependency onlifecycle-runtime-ktx; you no longer need to explicitly add it to your dependencies when usingactivity-ktxor libraries that depend onactivity-ktx(such asfragment-ktx). (aosp/987162)
Version 1.0.0
Version 1.0.0
September 5, 2019
androidx.activity:activity:1.0.0 and androidx.activity:activity-ktx:1.0.0 are released. The commits included in this version can be found here.
Major Features of 1.0.0
- ComponentActivity:
ComponentActivityserves as the new base class forFragmentActivityin Fragment1.1.0and, by extension,AppCompatActivityin AppCompat1.1.0. - activity-ktx: The
activity-ktxmodule includes aby viewModelsKotlin property extension for accessing ViewModels. This module is automatically included when you includefragment-ktxfrom Fragment1.1.0. - OnBackPressedDispatcher: As a composable alternative to overriding
onBackPressed(), you can now register aOnBackPressedCallbackfrom anyLifecycleOwner(such as a fragment) to intercept system back button events. A lambda with receiver versionaddCallbackhas been added toactivity-ktx. See Provide custom back navigation documentation for more details. - onRetainCustomNonConfigurationInstance deprecation: the
onRetainCustomNonConfigurationInstance()and the relatedgetLastCustomNonConfigurationInstance()APIs have been deprecated. It is strongly recommended to use ViewModels to store non-configuration state as they offer a composable solution suitable for anyViewModelStoreOwnerthat makes the ownership of the retained objects clear and provides anonCleared()callback for cleaning up resources when the activity is finally destroyed.
Version 1.0.0-rc01
July 2, 2019
androidx.activity:activity:1.0.0-rc01 and androidx.activity:activity-ktx:1.0.0-rc01 are released with no changes from 1.0.0-beta01. The commits included in this version can be found here.
Version 1.0.0-beta01
June 5, 2019
androidx.activity::activity:1.0.0-beta01 and androidx.activity:activity-ktx:1.0.0-beta01 are released with no changes from 1.0.0-alpha08. The commits included in this version can be found here.
Version 1.0.0-alpha08
May 7, 2019
androidx.activity:activity:1.0.0-alpha08 and androidx.activity:activity-ktx:1.0.0-alpha08 are released. The commits included in this version can be found here.
API changes
- Breaking change: The previously deprecated
addOnBackPressedCallbackandremoveOnBackPressedCallbackmethods onComponentActivityhave been removed. aosp/953857 - The
setEnabled()andisEnabled()methods ofOnBackPressedCallbackare now final. b/131416833 - The
remove()method ofOnBackPressedCallbackis now final. aosp/952720 OnBackPressedDispatchernow has public constructors, allowing you to construct your own instances for testing, etc. aosp/953431onBackPressed()forComponentActivityis now explicitly marked as@MainThreadaosp/952721
Bug fixes
- Fixed a
ConcurrentModificationExceptionwhen callingremove()from within thehandleOnBackPressed()method of aOnBackPressedCalbackthat was added with aLifecycleOwner. b/131765095
Version 1.0.0-alpha07
April 25th, 2019
androidx.activity:activity:1.0.0-alpha07 and androidx.activity:activity-ktx:1.0.0-alpha07 are released. The commits included in this version can be found here.
API changes
This release makes significant changes to the handling of the onBackPressed(). See the updated custom back documentation for more details.
- The methods for
OnBackPressedCallbackandOnBackPressedDispatcherhave been marked as@MainThread. (aosp/943813) - The
handleOnBackPressed()method no longer returns aboolean. Instead,OnBackPressedCallbackis now an abstract class that can be enabled or disabled - only when the newisEnabled()method returns true willhandleOnBackPressed()be called, in which you must handle the back button. (aosp/944518) - The
addCallbackmethods ofOnBackPressedDispatcherno longer return aCancellableinstance.OnBackPressedCallbacknow contain aremove()method that fulfill this functionality, allowing you to callremove()duringhandleOnBackPressed(). (aosp/944519) (aosp/946316) activity-ktxnow contains a receiver scoped callback foraddCallbackthat accepts a lamdba that implementshandleOnBackPressed()and has access toisEnabledandremove()(aosp/944520)
Version 1.0.0-alpha06
April 3rd, 2019
androidx.activity:activity:1.0.0-alpha06 and androidx.activity:activity-ktx:1.0.0-alpha06 are released. The commits included in this version can be found here.
API changes
- ComponentActivity now contain a second constructor that takes a
@LayoutRes int, which replaces the previous behavior of annotating your AppCompatActivity class with@ContentView. This approach works in both app and library modules. (b/128352521) - The
OnBackPressedCallbackrelated APIs on ComponentActivity have been deprecated in favor of the newOnBackPressedDispatcher, retrievable viagetOnBackPressedDispatcher(). (aosp/922523) - Methods to add a new
OnBackPressedCallbackto theOnBackPressedDispatchernow return aCancellableobject, allowing removal of the callback without requiring an explicit reference to theOnBackPressedDispatcher. (aosp/922523) - Adding a
OnBackPressedCallbackwith an associatedLifecycleOwnernow results in adding and removing theOnBackPressedCallbackas the Lifecycle is started and stopped, respectively. (aosp/922523)
Version 1.0.0-alpha05
March 13th, 2019
androidx.activity:activity:1.0.0-alpha05 and
androidx.activity:activity-ktx:1.0.0-alpha05 are released. The full list of commits
included in this release can be found here.
New features
@ContentViewannotation lookups are now cached (b/123709449)
Version 1.0.0-alpha04
January 30, 2019
androidx.activity:activity 1.0.0-alpha04and androidx.activity:activity-ktx 1.0.0-alpha04 are released.
New features
- Added support for the
@ContentViewclass annotation that allows you to indicate which layout XML file should be inflated as an alternative to usingsetContentView(). (aosp/837619)
API changes
- Added a note that
getViewModelStore()should not be overridden and will be made final in a future release. Please file a feature request if you are currently overriding this method. (aosp/837619)
Bug fixes
- The
activitymodule now depends on version 2.1.0-alpha02 of ViewModel to match theactivity-ktxmodule’s dependency.
Version 1.0.0-alpha03
December 17, 2018
androidx.activity 1.0.0-alpha03 is released.
New features
- ComponentActivity now implements
BundleSavedStateRegistryOwnerand depends on the newly released SavedState library [aosp/815133] - ComponentActivity now works around an Android framework bug that would cause InputMethodManager to leak the last focused view [b/37122102]
Version 1.0.0-alpha02
December 3, 2018
API changes
- Added a note that
getLifecycle()should not be overridden and will be madefinalin a future release. Please file a feature request if you are currently overriding this method. (aosp/815834)
Version 1.0.0-alpha01
November 5, 2018
androidx.activity 1.0.0-alpha01 introduces
ComponentActivity, a new base class of the existing FragmentActivity and
AppCompatActivity.
New features
- You can now register an
OnBackPressedCallbackviaaddOnBackPressedCallbackto receiveonBackPressed()callbacks without needing to override the method in your activity. - Added a new
by viewModels()Kotlin property delegate for retrievingViewModels from aComponentActivity. - Pending input events (such as clicks) are now canceled in
onStop().
API changes
- The implementation of
LifecycleOwnerandViewModelStoreOwnerhave been moved fromFragmentActivitytoComponentActivity. onRetainCustomNonConfigurationInstancehas been deprecated. Use aViewModelfor storing objects that need to survive configuration changes.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
