Actividad
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
24 de julio de 2024 | 1.9.1 | - | - | 1.10.0-alpha01 |
Cómo declarar dependencias
Si deseas agregar una dependencia en Activity, debes agregar el repositorio Maven de Google a tu proyecto. Consulta el repositorio Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
Groovy
dependencies { def activity_version = "1.9.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.10
Versión 1.10.0-alpha01
26 de junio de 2024
Lanzamiento de androidx.activity:activity:1.10.0-alpha01
, androidx.activity:activity-compose:1.10.0-alpha01
y androidx.activity:activity-ktx:1.10.0-alpha01
. Esta versión se desarrolla en una rama interna.
Nuevas funciones
- Se agregó compatibilidad con las nuevas funciones de
PhotoPicker
que se introdujeron en Android V, incluida la posibilidad de elegir imágenes en orden y elegir qué pestaña (ya sean álbumes o imágenes) debería estar visible inicialmente.
Versión 1.9
Versión 1.9.1
24 de julio de 2024
Lanzamiento de androidx.activity:activity:1.9.1
, androidx.activity:activity-compose:1.9.1
y androidx.activity:activity-ktx:1.9.1
. La versión 1.9.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema con
PredictiveBackHandler
por el que, después de volver a hacer el sistema, fallaba el intento de haceronBackPressed
desdeOnBackPressedDispatcher
. (I5f1f8).
Versión 1.9.0
17 de abril de 2024
Lanzamiento de androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
y androidx.activity:activity-ktx:1.9.0
. La versión 1.9.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.8.0
ComponentActivity
ahora implementaOnUserLeaveHintProvider
para permitir que los componentes realicen devoluciones de llamada de eventosonUserLeaveHint
.- Las APIs de
OnBackPressedCallback
,BackHandler
yPredictiveBackHandler
ahora muestran una advertencia cuando se llama aonBackPressedDispatcher.onBackPressed()
cuando se controla el regreso, ya que eso siempre interrumpirá la animación del gesto atrás predictivo. Consulta la guía de prácticas recomendadas para obtener más detalles. - El resto de las APIs de Activity se reescribieron en Kotlin y todas las extensiones que antes estaban disponibles en
activity-ktx
se movieron aactivity
.activity-ktx
ahora está completamente vacío.- Como parte de la conversión de
ActivityResultLauncher
a Kotlin, el métodogetContract
ahora es una propiedad abstracta de Kotlin. Este es un cambio compatible con objetos binarios, pero la fuente falla si tu implementación deActivityResultLauncher
está escrita en Kotlin.
- Como parte de la conversión de
Versión 1.9.0-rc01
3 de abril de 2024
Lanzamiento de androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
y androidx.activity:activity-ktx:1.9.0-rc01
. La versión 1.9.0-rc01 contiene estas confirmaciones.
Actualización de dependencia
- La actividad ahora depende de Profile Installer 1.3.1.
Versión 1.9.0-beta01
20 de marzo de 2024
Lanzamiento de androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
y androidx.activity:activity-ktx:1.9.0-beta01
. La versión 1.9.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una regresión de rendimiento del inicio de Activity introducida en Activity
1.9.0-alpha02
causada por una llamada aOnBackPressedDispatcher
como parte de la creación de Activity. (Ie75e3).
Versión 1.9.0-alpha03
7 de febrero de 2024
Lanzamiento de androidx.activity:activity:1.9.0-alpha03
, androidx.activity:activity-compose:1.9.0-alpha03
y androidx.activity:activity-ktx:1.9.0-alpha03
. La versión 1.9.0-alpha03 contiene estas confirmaciones.
Advertencia de lint
- Las APIs de
OnBackPressedCallback
,BackHandler
yPredictiveBackHandler
ahora muestran una advertencia cuando se llama aonBackPressedDispatcher.onBackPressed()
cuando se controla el regreso, ya que eso siempre interrumpirá la animación del gesto atrás predictivo. Consulta la guía de prácticas recomendadas para obtener más detalles. (1e4222, 2c950d, b/287505200).
Correcciones de errores
- Si se envía un evento de retroceso desde el sistema iniciado durante un gesto atrás predictivo que ya se está ejecutando, se cancelará el que se esté ejecutando en ese momento y el nuevo evento de retroceso tomará el control de un gesto atrás predictivo nuevo. (I3482e).
- Se corrigió una falla que se producía cuando se accedía a
onBackPressedDispatcher
desde unComponentActivity
por primera vez desde un subproceso en segundo plano. Ahora es seguro acceder aonBackPressedDispatcher
en cualquier subproceso. (I79955).
Versión 1.9.0-alpha02
24 de enero de 2024
Lanzamiento de androidx.activity:activity:1.9.0-alpha02
, androidx.activity:activity-compose:1.9.0-alpha02
y androidx.activity:activity-ktx:1.9.0-alpha02
. La versión 1.9.0-alpha02 contiene estas confirmaciones.
Conversiones de Kotlin
- Se reescribió
ActivityResultRegistry
en Kotlin. Esto garantiza que la nulabilidad de los parámetros genéricos del contrato que se pasa aregister
se pasará correctamente alActivityResultLauncher
que se te muestra. (I121f0). - Se reescribió
ActivityResult
en Kotlin. Las extensiones de KotlinActivityResult
que admiten la desestructuración en los camposresultCode
ydata
se movieron deactivity-ktx
aactivity
. (I0565a). - Las extensiones de Kotlin de
by viewModels()
paraComponentActivity
ytrackPipAnimationHintView
se movieron deactivity-ktx
aactivity
. Ahora el artefactoactivity-ktx
está completamente vacío. (I0a444).
Correcciones de errores
- La API de
enableEdgeToEdge
ahora dibuja cualquier corte de pantalla. (a3644b, b/311173461). - Desde Activity
1.8.2
: Se corrigió el elemento adicional que se pasaba al elementoACTION_SYSTEM_FALLBACK_PICK_IMAGES
del contrato de la actividad del selector de fotos para pasarle correctamente la claveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, en lugar de usar el elemento adicional con la clave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Te recomendamos que lo hagas si eres un OEM que implementa un selector de fotos de resguardo del sistema para admitir ambos extras y garantizar la mayor compatibilidad. (I96a00).
Versión 1.9.0-alpha01
29 de noviembre de 2023
Lanzamiento de androidx.activity:activity:1.9.0-alpha01
, androidx.activity:activity-compose:1.9.0-alpha01
y androidx.activity:activity-ktx:1.9.0-alpha01
. La versión 1.9.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
ComponentActivity
ahora implementaOnUserLeaveHintProvider
para permitir que los componentes realicen devoluciones de llamada de eventosonUserLeaveHint
. (I54892).
Cambios en la API
- Se reescribió
ComponentActivity
en Kotlin. (I14f31). - Se reescribió
ActivityResultCaller
en Kotlin. (Ib02e4). - Se reescribió
ActivityResultLauncher
en Kotlin. Como parte de esa conversión, el métodogetContract
ahora es una propiedad abstracta de Kotlin. Este es un cambio compatible con objetos binarios, pero la fuente falla si tu implementación deActivityResultLauncher
está escrita en Kotlin. (Id4615). PickVisualMediaRequest
ahora tiene el mismo nivel mínimo de API, 19, que el contrato de Activity Result dePickVisualMedia
. (Id6e21).
Actualización de dependencia
- La actividad ahora depende de Core
1.13.0-alpha01
. (I14f31).
Versión 1.8
Versión 1.8.2
13 de diciembre de 2023
Lanzamiento de androidx.activity:activity:1.8.2
, androidx.activity:activity-compose:1.8.2
y androidx.activity:activity-ktx:1.8.2
. La versión 1.8.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el elemento adicional que se pasaba al elemento
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
del contrato de la actividad del selector de fotos para pasarle correctamente la claveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, en lugar de usar el elemento adicional con la clave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Te recomendamos que lo hagas si eres un OEM que implementa un selector de fotos de resguardo del sistema para admitir ambos extras y garantizar la mayor compatibilidad. (I96a00).
Versión 1.8.1
15 de noviembre de 2023
Lanzamiento de androidx.activity:activity:1.8.1
, androidx.activity:activity-compose:1.8.1
y androidx.activity:activity-ktx:1.8.1
. La versión 1.8.1 contiene estas confirmaciones.
Correcciones de errores
- Ahora,
OnBackPressedDispatcher
continúa realizando envíos alOnBackPressedCallback
correcto, incluso después de que se agrega un nuevoOnBackPressedCallback
mientras se controla el gesto atrás. (Id0ff6).
Versión 1.8.0
4 de octubre de 2023
Lanzamiento de androidx.activity:activity:1.8.0
, androidx.activity:activity-compose:1.8.0
y androidx.activity:activity-ktx:1.8.0
. La versión 1.8.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.7.0
- Atrás predictivo: El
OnBackPressedCallback
ahora ofrece nuevas devoluciones de llamada de atrás predictivo para controlar el inicio del gesto atrás, el progreso en todo el gesto y la cancelación del gesto atrás, además de la devolución de llamadahandleOnBackPressed()
anterior para cuando se confirma el gesto atrás. También incluye el elemento componiblePredictiveBackHandler
para controlar eventos de gestos atrás predictivos en Activity Compose. Proporciona un flujo de objetos BackEventCompat que deben recopilarse en la lamba de suspensión que proporciones:
PredictiveBackHandler { progress: Flow<BackEventCompat> ->
// code for gesture back started
try {
progress.collect { backEvent ->
// code for progress
}
// code for completion
} catch (e: CancellationException) {
// code for cancellation
}
}
ComponentActivity.onBackPressed()
dejó de estar disponible y se reemplazó por las APIs de manejo. Los desarrolladores ahora deberían usar OnBackPressedDispatcher
, en lugar de anular este método.
- EdgeToEdge: Se agregó
ComponentActivity.enableEdgeToEdge()
para configurar fácilmente la pantalla de borde a borde de manera retrocompatible.
Versión 1.8.0-rc01
20 de septiembre de 2023
Lanzamiento de androidx.activity:activity:1.8.0-rc01
, androidx.activity:activity-compose:1.8.0-rc01
y androidx.activity:activity-ktx:1.8.0-rc01
. La versión 1.8.0-rc01 contiene estas confirmaciones.
Versión 1.8.0-beta01
6 de septiembre de 2023
Lanzamiento de androidx.activity:activity:1.8.0-beta01
, androidx.activity:activity-compose:1.8.0-beta01
y androidx.activity:activity-ktx:1.8.0-beta01
. La versión 1.8.0-beta01 contiene estas confirmaciones.
Mejora de la documentación
- Se mejoró la documentación de
BackEventCompat
. (aosp/2722254).
Versión 1.8.0-alpha07
23 de agosto de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha07
, androidx.activity:activity-compose:1.8.0-alpha07
y androidx.activity:activity-ktx:1.8.0-alpha07
. La versión 1.8.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
Activity Compose agregó un nuevo elemento componible
PredictiveBackHandler
para controlar los eventos de gestos atrás predictivos. Proporciona unFlow
de objetosBackEventCompat
que deben recopilarse en la expresión lamba de suspensión que proporciones:PredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }
También incluye una advertencia de tiempo de compilación a través de la regla de lint para garantizar que
Flow
llame acollect()
. (Id2773, b/294884345).onBackPressedDispatcher
enComponentActivity
ahora se inicializa de forma diferida para que solo se cree cuando sea necesario. (I0bf8e).
Correcciones de errores
ComponentActivity
ya no mostrará una NPE en Android 13 cuando reciba una devolución de llamadaonBackPressed()
y la actividad ya haya sidoDESTROYED
. (Idb055, b/291869278).- Se quitaron los usos de la API experimental de
isAtLeastU()
(Ie9117, b/289269026).
Versión 1.8.0-alpha06
21 de junio de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha06
, androidx.activity:activity-compose:1.8.0-alpha06
y androidx.activity:activity-ktx:1.8.0-alpha06
. La versión 1.8.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
OnBackPressedDispatcher
ahora cancela correctamente cualquier devolución de llamada que se quite durante un gesto atrás predictivo. (I3f90f).
Cambios en la API
- Cuando pasas
SystemBarStyle.auto
a la API deenableEdgeToEdge
, ahora puedes anular el parámetro lambdadetectDarkMode
a fin de proporcionar una lógica personalizada para detectar el modo nocturno. (aosp/2546393, b/278263793).
Versión 1.8.0-alpha05
7 de junio de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha05
, androidx.activity:activity-compose:1.8.0-alpha05
y androidx.activity:activity-ktx:1.8.0-alpha05
. Esta versión se desarrolla en una rama interna.
Cambios en la API
- La actividad ahora proporciona una clase
BackEventCompat
que funciona como una versión retrocompatible deBackEvent
que está separada de la claseBackEvent
del framework. - Cambio rotundo: Los métodos
handleOnBackStarted
yhandleOnBackProgressed
deOnBackPressedCallback
ahora reciben una instanciaandroidx.activity.BackEventCompat
en lugar de una claseandroid.window.BackEvent
de framework. También se actualizaron las APIs de@VisibleForTesting
equivalentes enOnBackPressedDispatcher
. - El constructor de
OnBackPressedDispatcher
ahora toma una instancia opcional deConsumer<Boolean>
que permite a los propietarios del despachador recibir una devolución de llamada cada vez que la cantidad de devoluciones de llamada habilitadas cambia de cero a distinta de cero, o viceversa.
Correcciones de errores
- Desde Actividad
1.7.2
: Se corrigió la falla deReportDrawn
que se producía cuando se salía de una pantalla antes de llamar areport
. (Ic46f1, b/260506820).
Versión 1.8.0-alpha04
10 de mayo de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha04
, androidx.activity:activity-compose:1.8.0-alpha04
y androidx.activity:activity-ktx:1.8.0-alpha04
. Esto se lanzó a partir de una rama interna.
Correcciones de errores
- A partir de Activity 1.7.1: - El
ReportFullyDrawExecuter
ya no tiene fugas cuando se usaComponentActivity
conActivityScenario
. (Id2ff2, b/277434271).
Versión 1.8.0-alpha03
12 de abril de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha03
, androidx.activity:activity-compose:1.8.0-alpha03
y androidx.activity:activity-ktx:1.8.0-alpha03
. Esto se lanzó a partir de una rama interna.
Nuevas funciones
- Se agregó
ComponentActivity.setUpEdgeToEdge()
para configurar fácilmente la pantalla de borde a borde de manera retrocompatible.
Cambios en la API
ComponentActivity.onBackPressed()
dejó de estar disponible y se reemplazó por las APIs de manejo. Los desarrolladores ahora deberían usarOnBackPressedDispatcher
, en lugar de anular este método. (Ibce2f, b/271596918).ComponentDialog
yComponentActivity
ahora contienen la API públicainitViewTreeOwners()
que se usará para inicializar todos los propietarios del árbol de vistas antes de configurar la vista de contenido. (Ibdce0, b/261314581).
Correcciones de errores
- Se solucionó un problema por el que Fragments invalidaba de forma incorrecta MenuHosts y causaba que otros menús de la actividad tuvieran un comportamiento inesperado. (I9404e, b/244336571).
Otros cambios
ActivityResultRegister
ahora usaRandom
de Kotlin en lugar de Java. (I4d98f, b/272096025).
Versión 1.8.0-alpha02
8 de marzo de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha02
, androidx.activity:activity-compose:1.8.0-alpha02
y androidx.activity:activity-ktx:1.8.0-alpha02
. Se desarrolla a partir de una rama interna.
Actualización de dependencia
- Desde Activity
1.7.0-rc01
: La actividad ahora depende deLifecycle 2.6.0
.
Versión 1.8.0-alpha01
8 de febrero de 2023
Lanzamiento de androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
y androidx.activity:activity-ktx:1.8.0-alpha01
. Esto se compiló a partir de una rama interna.
Nuevas funciones
- La clase
OnBackPressedCallback
ahora incluye nuevas devoluciones de llamada de progreso del gesto atrás predictivo para controlar el inicio del gesto atrás, el progreso en todo el gesto y la cancelación de este gesto, además de la devolución de llamada dehandleOnBackPressed()
anterior para cuando se confirma el gesto atrás.
Versión 1.7
Versión 1.7.2
24 de mayo de 2023
Lanzamiento de androidx.activity:activity:1.7.2
, androidx.activity:activity-compose:1.7.2
y androidx.activity:activity-ktx:1.7.2
. La versión 1.7.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la falla de
ReportDrawn
que se producía cuando se salía de una pantalla antes de llamar areport
. (Ic46f1, b/260506820).
Versión 1.7.1
19 de abril de 2023
Lanzamiento de androidx.activity:activity:1.7.1
, androidx.activity:activity-compose:1.7.1
y androidx.activity:activity-ktx:1.7.1
. La versión 1.7.1 contiene estas confirmaciones.
Correcciones de errores
ReportFullyDrawExecuter
ya no se filtra cuando se usaComponentActivity
conActivityScenario
. (Id2ff2, b/277434271).
Versión 1.7.0
22 de marzo de 2023
Lanzamiento de androidx.activity:activity:1.7.0
, androidx.activity:activity-compose:1.7.0
y androidx.activity:activity-ktx:1.7.0
. La versión 1.7.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.6.0
- Los contratos de actividad del selector de fotos en
PickVisualMedia
yPickMultipleVisualMedia
se actualizaron para contener un resguardo adicional para cuandoMediaStore.ACTION_PICK_IMAGES
no esté disponible, lo que permite que los OEM y las apps del sistema, como los Servicios de Google Play, proporcionen una experiencia coherente del selector de fotos en una mayor variedad de dispositivos Android y niveles de API implementando la acción de resguardo. El selector de fotos usará este resguardo si está disponible antes de volver a usarIntent.ACTION_OPEN_DOCUMENT
, que sigue siendo compatible con todos los dispositivos de API 19 y versiones posteriores. ComponentDialog
ahora implementaSavedStateRegistryOwner
y tiene acceso a su propioSavedStateRegistry
y establece elSavedStateRegistryOwner
para suViewTree
. Ahora es posible usar Jetpack Compose dentro de unComponentDialog
, ya que cumple conLifecycleOwner
ySavedStateRegistryOwner
adjuntos a Window mediante los requisitos de las APIs deViewTree
.IntentSenderRequest.Builder.setFlags()
ahora te permite configurar varias marcas deIntent
, en lugar de una sola
Conversión de Kotlin
Varias clases de Activity se convirtieron a Kotlin. Todas las clases convertidas conservan su compatibilidad binaria con las versiones anteriores. Las siguientes clases tienen cambios incompatibles de la fuente para las clases escritas en Kotlin: ActivityResultRegistryOwner
, OnBackPressedDispatcherOwner
.
En la siguiente tabla, se proporcionan las conversiones de origen de la nueva versión de Activity:
Actividad 1.5 | Actividad 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
Estas clases también se convirtieron a Kotlin, pero siguen siendo compatibles con las fuentes: ContextAware
, ContextAwareHelper
, OnContextAvailableListener
, IntentSenderRequest
y OnBackPressedDispatcher
.
APIs de FullyDrawnReporter
ComponentActivity
ahora proporciona una instancia de FullyDrawnReporter
que permite que varios componentes informen cuando están listos para la interacción. ComponentActivity
esperará a que se completen todos los componentes antes de llamar a reportFullyDrawn()
en tu nombre. Estas APIs se encargan de los requisitos de tiempo por ti, y no es necesario que las llames como parte de una llamada de onDraw
.
Se recomienda que estas APIs habiliten lo siguiente:
- Indicar Android Runtime cuando se completa el inicio a fin de garantizar que se incluya todo el código que se ejecuta durante una secuencia de inicio de varios fotogramas y que se priorice para la compilación en segundo plano
- Se le indica a Macrobenchmark y Play Vitals cuando se debe considerar que la aplicación se dibujó por completo para las métricas de inicio, para que puedas hacer un seguimiento del rendimiento
Se agregaron tres APIs de Activity Compose para facilitar el uso de FullyDrawnReporter
desde elementos componibles individuales:
ReportDrawn
indica que el elemento componible está listo de inmediato para interactuar.ReportDrawnWhen
toma un predicado (es decir,list.count > 0
) para indicar cuándo el elemento componible está listo para interactuar.ReportDrawnAfter
toma un método de suspensión que, cuando se completa, indica que está todo listo para la interacción.
Actualizaciones de dependencias
- La actividad ahora depende de Lifecycle
2.6.1
. (8fc31d). - La actividad ahora depende de ProfileInstaller
1.3.0
. (83d3b1).
Versión 1.7.0-rc01
8 de marzo de 2023
Lanzamiento de androidx.activity:activity:1.7.0-rc01
, androidx.activity:activity-compose:1.7.0-rc01
y androidx.activity:activity-ktx:1.7.0-rc01
. La versión 1.7.0-rc01 contiene estas confirmaciones.
Actualización de dependencia
- La actividad ahora depende de
Lifecycle 2.6.0
.
Versión 1.7.0-beta02
22 de febrero de 2023
Lanzamiento de androidx.activity:activity:1.7.0-beta02
, androidx.activity:activity-compose:1.7.0-beta02
y androidx.activity:activity-ktx:1.7.0-beta02
. La versión 1.7.0-beta02 contiene estas confirmaciones.
Cambios en la API
- La acción y el elemento adicional que usan los contratos
PickVisualMedia
yPickMultipleVisualMedia
como resguardo cuandoMediaStore.ACTION_PICK_IMAGES
no está disponible ahora son constantes públicas que proporcionan estabilidad de la API a los OEM y las apps del sistema que quieren proporcionar una experiencia coherente del selector de fotos. La implementación de este resguardo aún se limita solo a las apps del sistema. (Icd320).
Versión 1.7.0-beta01
8 de febrero de 2023
Lanzamiento de androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
y androidx.activity:activity-ktx:1.7.0-beta01
. La versión 1.7.0-beta01 contiene estas confirmaciones.
Nuevas funciones
IntentSenderRequest.Builder.setFlags()
ahora te permite configurar varias marcas deIntent
, en lugar de una sola (Iac04c).
Correcciones de errores
- El resguardo de
PickVisualMedia
para cuando el selector de fotos del framework no está disponible ahora limita correctamente la control de apps instaladas en la imagen del sistema del dispositivo (If8ae6).
Conversiones de Kotlin
ActivityResultRegistryOwner
ahora está escrito en Kotlin. Este es un cambio incompatible de la fuente para esas clases escritas en Kotlin; ahora debes anular la propiedadactivityResultRegistry
en lugar de implementar la funcióngetActivityResultRegistry()
anterior (I0b00e).OnBackPressedDispatcherOwner
ahora está escrito en Kotlin. Este es un cambio incompatible de la fuente para esas clases escritas en Kotlin; ahora debes anular la propiedadonBackPressedDispatcher
en lugar de implementar la funcióngetOnBackPressedDispatcher
anterior (Ia277d).ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
yOnBackPressedDispatcher
ahora están escritos en Kotlin (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701).
Versión 1.7.0-alpha04
25 de enero de 2023
Se lanzaron androidx.activity:activity:1.7.0-alpha04
, androidx.activity:activity-compose:1.7.0-alpha04
y androidx.activity:activity-ktx:1.7.0-alpha04
. La versión 1.7.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Ahora, los contratos de resultado de Activity
PickVisualMedia
yPickMultipleVisualMedia
usarán el selector de fotos de los Servicios de Google Play, siempre que esté disponible, en los casos en que el sistema Android haya proporcionado el selector de fotos (p. ej.,MediaStore.ACTION_PICK_IMAGES
) no está disponible. La API deisPhotoPickerAvailable()
que solo detecta el selector de fotos proporcionado por el sistema Android dejó de estar disponible. Se recomienda usar la nueva API deisPhotoPickerAvailable(Context)
, que aparecerá si hay un selector de fotos disponible (I55be6).
Versión 1.7.0-alpha03
11 de enero de 2023
Se lanzaron androidx.activity:activity:1.7.0-alpha03
, androidx.activity:activity-compose:1.7.0-alpha03
y androidx.activity:activity-ktx:1.7.0-alpha03
. La versión 1.7.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
ComponentDialog
ahora implementaSavedStateRegistryOwner
y tiene acceso a su propioSavedStateRegistry
y estableceSavedStateRegistryOwner
para ViewTree. Ahora, es posible usar Jetpack Compose dentro de unComponentDialog
, ya que cumple conLifecycleOwner
ySavedStateRegistryOwner
adjuntos a Window mediante los requisitos de las APIs de ViewTree (Idca17, I73468, b/261162296).
Cambios en la API
- Se agregó un elemento
ReportDrawn
componible que marca inmediatamente la actividad como lista para llamar areportFullyDrawn
(Ic5b14, b/259687964).
Conversiones de Kotlin
- Las clases
ActvitiyResultCallback
yOnBackPressedCallback
se convirtieron a Kotlin y mantienen la compatibilidad de fuente y objeto binario (Ifc5e5, Ide1b0, b/257291701).
Versión 1.7.0-alpha02
24 de octubre de 2022
Lanzamiento de androidx.activity:activity:1.7.0-alpha02
, androidx.activity:activity-compose:1.7.0-alpha02
y androidx.activity:activity-ktx:1.7.0-alpha02
. La versión 1.7.0-alpha02 contiene estas confirmaciones.
Correcciones de errores
- A partir de Activity
1.6.1
: Se corrigió un problema por el que no se lanzaba el contrato de resultado de la actividad dePickMultipleVisualMedia
en dispositivos Android R cuando se usaba el valor predeterminado paramaxItems
(Ie2776, b/249182130).
Versión 1.7.0-alpha01
5 de octubre de 2022
Se lanzaron androidx.activity:activity:1.7.0-alpha01
, androidx.activity:activity-compose:1.7.0-alpha01
y androidx.activity:activity-ktx:1.7.0-alpha01
. La versión 1.7.0-alpha01 contiene estas confirmaciones.
APIs de FullyDrawnReporter
ComponentActivity
ahora proporciona una instancia de FullyDrawnReporter
que permite que varios componentes informen cuando están listos para la interacción. ComponentActivity
esperará a que se completen todos los componentes antes de llamar a reportFullyDrawn()
en tu nombre. Estas APIs se encargan de los requisitos de tiempo por ti, y no es necesario que las llames como parte de una llamada de onDraw
.
Se recomienda que estas APIs habiliten lo siguiente:
- Indicar Android Runtime cuando se completa el inicio a fin de garantizar que se incluya todo el código que se ejecuta durante una secuencia de inicio de varios fotogramas y que se priorice para la compilación en segundo plano
- Se le indica a Macrobenchmark y Play Vitals cuando se debe considerar que la aplicación se dibujó por completo para las métricas de inicio, para que puedas hacer un seguimiento del rendimiento
Se agregaron dos APIs de Activity Compose para facilitar el uso de FullyDrawnReporter
desde elementos componibles individuales:
ReportDrawnWhen
toma un predicado (es decir,list.count > 0
) para indicar cuándo el elemento componible está listo para interactuar.ReportDrawnAfter
toma un método de suspensión que, cuando se completa, indica que está todo listo para la interacción.
Versión 1.6.1
Versión 1.6.1
24 de octubre de 2022
Lanzamiento de androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
y androidx.activity:activity-ktx:1.6.1
. La versión 1.6.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema por el que no se lanzaba el contrato de resultado de la actividad de
PickMultipleVisualMedia
en dispositivos Android R cuando se usaba el valor predeterminado paramaxItems
(Ie2776, b/249182130).
Versión 1.6.0
Versión 1.6.0
21 de septiembre de 2022
Se lanzaron androidx.activity:activity:1.6.0
, androidx.activity:activity-compose:1.6.0
y androidx.activity:activity-ktx:1.6.0
. La versión 1.6.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.5.0
- Se agregaron
ActivityResultContracts.PickVisualMedia
yActivityResultContracts.PickMultipleVisualMedia
para proporcionar un contrato retrocompatible que useMediaStore.ACTION_PICK_IMAGES
cuando el Selector de fotos esté disponible, yIntent.ACTION_OPEN_DOCUMENT
cuando no lo esté. - Se integró el
OnBackInvokedCallback
en Android 13 en elOnBackPressedDispatchers
proporcionado porComponentActivity
yComponentDialog
. Esto garantiza que todas las APIs que se compilan enOnBackPressedDispatcher
funcionen cuando habilites un gesto atrás predictivo.
Versión 1.6.0-rc02
7 de septiembre de 2022
Lanzamiento de androidx.activity:activity:1.6.0-rc02
, androidx.activity:activity-compose:1.6.0-rc02
y androidx.activity:activity-ktx:1.6.0-rc02
. La versión 1.6.0-rc02 contiene estas confirmaciones.
Correcciones de errores
OnBackPressedDispatcher
ahora registraOnBackInvokedCallback
conPRIORITY_DEFAULT
en lugar dePRIORITY_OVERLAY
(I3901f).- Ahora siempre se enviarán las dos devoluciones de llamada de
onMultiWindowModeChanged()
a las clases que extiendanComponentActivity
. (Ic4d85). ActivityResultRegistry
ya no mostrará un resultado aActivityResultCallback
cuando la llamada delaunch
arroje cualquierException
y se haya registrado la devolución de llamada sin unLifecycleOwner
(Ia7ff7, b/238350794).- Ahora,
ComponentActivity
enviará correctamente las llamadas al menú sin necesidad de llamar a la superfunción en tu actividad (Ie33c5, b/238057118).
Actualización de dependencia
- La biblioteca de
Activity
ahora depende de Lifecycle2.5.1
(If6697).
Versión 1.6.0-rc01
24 de agosto de 2022
Se lanzaron androidx.activity:activity:1.6.0-rc01
, androidx.activity:activity-compose:1.6.0-rc01
y androidx.activity:activity-ktx:1.6.0-rc01
. La versión 1.6.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Cuando se inicializa un
OnBackPressedDispatcher
, ya no se generanClassVerificationError
si se usan versiones de SDK anteriores a la 33 (Ic32e1). - Las clases que anulan
onPictureInPictureModeChanged()
deComponentActivity
ahora siempre se enviarán las devoluciones de llamada (Ib7fdb).
Versión 1.6.0-beta01
10 de agosto de 2022
Se lanzaron androidx.activity:activity:1.6.0-beta01
, androidx.activity:activity-compose:1.6.0-beta01
y androidx.activity:activity-ktx:1.6.0-beta01
. La versión 1.6.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Los métodos
startActivityForResult
ystartIntentSenderForResult
se marcaron como obsoletos enComponentActivity
con@NonNull
porque pasarnull
siempre provocó una falla (Id2a25, b/231476082).
Correcciones de errores
- Desde Activity
1.5.1
:ActivityResultRegistry
ya no mostrará un resultado a laActivityResultCallback
cuando la llamadalaunch
arroje cualquierException
y la devolución de llamada se registró sin unLifecycleOwner
(Ia7ff7, b/238350794). - Desde Activity
1.5.1
:ComponentActivity
ahora enviará correctamente las llamadas del menú a las anulacionesonPrepareOptionMenu()
,onCreateOptionsMenu()
yonOptionsItemSelected()
sin necesidad de llamar a la superfunción (Ie33c5, b/238057118).
Actualización de dependencia
- Desde Activity
1.5.1
: La bibliotecaActivity
ahora depende de la versión2.5.1
deLifecycle
(If6697).
Versión 1.6.0-alpha05
15 de junio de 2022
Se lanzaron androidx.activity:activity:1.6.0-alpha05
, androidx.activity:activity-compose:1.6.0-alpha05
y androidx.activity:activity-ktx:1.6.0-alpha05
. La versión 1.6.0-alpha05 se desarrolló en una rama privada previa al lanzamiento y no tiene confirmaciones públicas.
Cambios en la API
minCompileSdk
ahora es 33 para alinearse con el SDK de Tiramisu beta 3
Correcciones de errores
- Se corrigió una falla en dispositivos más antiguos cuando se realizaba una comprobación de extensión de SDK para
PickVisualMedia
ActivityResultContract
, de modo que ahora debería funcionar conACTION_OPEN_DOCUMENT
en dispositivos que ejecutan Android 10 o versiones anteriores.
Versión 1.6.0-alpha04
18 de mayo de 2022
Lanzamiento de androidx.activity:activity:1.6.0-alpha04
y androidx.activity:activity-ktx:1.6.0-alpha04
.
Correcciones de errores
- Se corrigió un error en
PickVisualMediaRequest
en el que cuando se creaba una solicitud, ya sea a través del compilador o de la función de nivel superior de Kotlin, se generaba un desbordamiento de pila. - Se integró
OnBackInvokedCallback
en la versión Dev Beta 2 de Android 13 en elOnBackPressedDispatcher
que brindaComponentDialog
. Esto garantiza que todas las APIs que se compilan enOnBackPressedDispatcher
funcionen cuando habilites un gesto de retroceso predictivo.
Versión 1.6.0-alpha03
27 de abril de 2022
Se lanzaron androidx.activity:activity:1.6.0-alpha03
, androidx.activity:activity-compose:1.6.0-alpha03
y androidx.activity:activity-ktx:1.6.0-alpha03
.
- Nota: Esta versión solo se compilará con el SDK de Android 13 Developer Beta 1.
Nuevas funciones
- Se agregaron
ActivityResultContracts.PickVisualMedia
yActivityResultContracts.PickMultipleVisualMedia
para proporcionar un contrato retrocompatible que useMediaStore.ACTION_PICK_IMAGES
cuando el Selector de fotos esté disponible, yIntent.ACTION_OPEN_DOCUMENT
cuando no lo esté. - Se integró
OnBackInvokedCallback
en la versión Dev Beta 1 de Android 13 en elOnBackPressedDispatcher
que brindaComponentActivity
. Esto garantiza que todas las APIs que se compilan enOnBackPressedDispatcher
funcionen cuando habilites un gesto de retroceso predictivo.
Versión 1.6.0-alpha01
23 de marzo de 2022
Se lanzaron androidx.activity:activity:1.6.0-alpha01
, androidx.activity:activity-compose:1.6.0-alpha01
y androidx.activity:activity-ktx:1.6.0-alpha01
.
- Nota: Esta versión solo se compilará con el SDK de la Vista previa para desarrolladores 2 de Android 13.
Nuevas funciones
- Se integraron los cambios en la Vista previa para desarrolladores 2 de Android 13 en
ComponentActivity
.
Versión 1.5.1
Versión 1.5.1
27 de julio de 2022
Lanzamiento de androidx.activity:activity:1.5.1
, androidx.activity:activity-compose:1.5.1
y androidx.activity:activity-ktx:1.5.1
. La versión 1.5.1 contiene estas confirmaciones.
Correcciones de errores
ActivityResultRegistry
ya no mostrará un resultado paraActivityResultCallback
cuando la llamadalaunch()
arroje cualquierException
y se haya registrado la devolución de llamada sin unLifecycleOwner
(Ia7ff7, b/238350794).Ahora,
ComponentActivity
enviará correctamente las llamadas al menú a las anulacionesonPrepareOptionMenu()
,onCreateOptionsMenu()
yonOptionsItemSelected()
sin necesidad de llamar a la superfunción (Ie33c5, b/238057118).
Actualización de dependencia
- La biblioteca
Activity
ahora depende de Lifecycle2.5.1
(If6697).
Versión 1.5.0
Versión 1.5.0
29 de junio de 2022
Se lanzaron androidx.activity:activity:1.5.0
, androidx.activity:activity-compose:1.5.0
y androidx.activity:activity-ktx:1.5.0
. La versión 1.5.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.4.0
- ComponentDialog:
ComponentDialog
es una subclase deDialog
que incluye unOnBackPressedDispatcher
al que se llamará cuando se presione el botón Atrás del sistema y el diálogo sea visible. Es importante que tengas en cuenta que esta subclase también establece elViewTreeOnBackPressedDispatcherOwner
, lo que permite que las vistas recuperen de manera genérica el despachador correcto cuando se encuentra enComponentActivity
oComponentDialog
. - Interfaces de devolución de llamada:
ComponentActivity
ahora implementa un conjunto de interfaces de devolución de llamada modulares que se pueden usar en lugar de las devoluciones de llamadaActivity
. Estas interfaces incluyen las siguientes:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
yOnMultiWindowModeChangedProvider
. - Integración de CreationExtras:
ComponentActivity
ahora puede proporcionar unViewModelProvider.Factory
sin estado a través delCreationExtras
de Lifecycle2.5.0
.
Otros cambios
- Dejó de estar disponible el constructor sin parámetro para
ActivityResultContracts.CreateDocument
y se reemplazó por un constructor nuevo que toma un tipo de MIME concreto (p. ej., "image/png") según lo soliciteIntent.ACTION_CREATE_DOCUMENT
.
Versión 1.5.0-rc01
11 de mayo de 2022
Lanzamiento de androidx.activity:activity:1.5.0-rc01
, androidx.activity:activity-compose:1.5.0-rc01
y androidx.activity:activity-ktx:1.5.0-rc01
sin modificaciones desde la versión 1.5.0-beta01. La versión 1.5.0-rc01 contiene estas confirmaciones.
Versión 1.5.0-beta01
20 de abril de 2022
Se lanzaron androidx.activity:activity:1.5.0-beta01
, androidx.activity:activity-compose:1.5.0-beta01
y androidx.activity:activity-ktx:1.5.0-beta01
. La versión 1.5.0-beta01 contiene estas confirmaciones.
Actualizaciones de dependencias
- La actividad ahora depende de Lifecycle
2.4.0-beta01
.
Versión 1.5.0-alpha05
6 de abril de 2022
Se lanzaron androidx.activity:activity:1.5.0-alpha05
, androidx.activity:activity-compose:1.5.0-alpha05
y androidx.activity:activity-ktx:1.5.0-alpha05
. La versión 1.5.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
onPanelClosed()
deComponentActivity
ahora también llama alonPanelClosed()
superpuesto, lo que soluciona el problema por el que no se llamaba al métodoonContextMenuClosed
(Ib6f77).
Versión 1.5.0-alpha04
23 de marzo de 2022
Se lanzaron androidx.activity:activity:1.5.0-alpha04
, androidx.activity:activity-compose:1.5.0-alpha04
y androidx.activity:activity-ktx:1.5.0-alpha04
. La versión 1.5.0-alpha04 contiene estas confirmaciones.
Correcciones de errores
SavedStateViewFactory
ahora admite el uso deCreationExtras
, incluso cuando se inicializó con unSavedStateRegistryOwner
. Si se proporcionan elementos adicionales, se ignoran los argumentos inicializados (I6c43b, b/224844583).
Versión 1.5.0-alpha03
23 de febrero de 2022
Se lanzaron androidx.activity:activity:1.5.0-alpha03
, androidx.activity:activity-compose:1.5.0-alpha03
y androidx.activity:activity-ktx:1.5.0-alpha03
. La versión 1.5.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Ahora puedes pasar
CreationExtras
a la funciónby viewModels()
de la actividad (I6a3e6, b/217600303).
Versión 1.5.0-alpha02
9 de febrero de 2022
Lanzamiento de androidx.activity:activity:1.5.0-alpha02
, androidx.activity:activity-compose:1.5.0-alpha02
y androidx.activity:activity-ktx:1.5.0-alpha02
. La versión 1.5.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
ComponentActivity
ahora implementa la interfazOnPictureInPictureModeChangedProvider
para permitir que cualquier componente reciba eventos de cambio del modo de pantalla en pantalla (I9f567).ComponentActivity
ahora implementa la interfazOnMultiWindowModeChangedProvider
para permitir que cualquier componente reciba eventos de cambio del modo multiventana (I62d91).
Versión 1.5.0-alpha01
26 de enero de 2022
Lanzamiento de androidx.activity:activity:1.5.0-alpha01
, androidx.activity:activity-compose:1.5.0-alpha01
y androidx.activity:activity-ktx:1.5.0-alpha01
. La versión 1.5.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
ComponentActivity
ahora se integra con ViewModel CreationExtras, que se introdujo como parte de Lifecycle2.5.0-alpha01
. (Ie7e00, b/207012584)- Se agregó
ComponentDialog
, una subclase deDialog
que incluye unOnBackPressedDispatcher
al que se llamará cuando se presione el botón Atrás del sistema cuando el diálogo sea visible. Es importante que tengas en cuenta que esta subclase también establece elViewTreeOnBackPressedDispatcherOwner
, lo que permite que las vistas recuperen de manera genérica el despachador correcto cuando se encuentra enComponentActivity
oComponentDialog
. (I8a1bc) ComponentActivity
ahora implementa la nueva interfazOnNewIntentProvider
para permitir que cualquier componente reciba estos eventos. (If1f8b)ComponentActivity
ahora implementa la nueva interfazOnConfigurationChangedProvider
para permitir que cualquier componente reciba estos eventos. (If623b)ComponentActivity
ahora implementa la nueva interfazOnTrimMemoryProvider
para permitir que cualquier componente reciba estos eventos. (Ia9295)
Cambios en la API
- Dejó de estar disponible el constructor sin parámetro para
ActivityResultContracts.CreateDocument
y se reemplazó por un constructor nuevo que toma un tipo de MIME concreto (p. ej.,"image/png"
) según lo soliciteIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) - El
OnBackPressedDispatcherOwner
asociado con View ahora se puede recuperar a través deViewTreeOnBackPressedDispatcherOwner
, en lugar de depender de la transmisión deContext
. (I74685)
Correcciones de errores
- Se solucionó una falla que se producía cuandos se accedía a
ViewModel
por primera vez desderegisterForActivityResult()
o desde las devoluciones de llamada aLifecycleObserver
que se agregaron como parte deinit
deComponentActivity
. (Ife83f)
Versión 1.4.0
Versión 1.4.0
27 de octubre de 2021
Lanzamiento de androidx.activity:activity:1.4.0
, androidx.activity:activity-compose:1.4.0
y androidx.activity:activity-ktx:1.4.0
. La versión 1.4.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.3.0
ComponentActivity
de AndroidX ahora implementa la interfazMenuHost
. Esto permite que cualquier componente agregue elementos de menú aActionBar
mediante una instancia deMenuProvider
a la actividad. De manera opcional, se puede agregar cadaMenuProvider
con unLifecycle
que controlará automáticamente la visibilidad de esos elementos del menú en función del estado deLifecycle
y controlará la eliminación delMenuProvider
cuandoLifecycle
se destruya.- Se reescribió la clase
ActivityResultContract
en Kotlin a fin de garantizar que los desarrolladores que escriben contratos personalizados en Kotlin puedan definir la nulabilidad correcta para sus clases de entrada y salida. - La clase
ActivityResultContracts
y sus contratos se reescribieron en Kotlin para garantizar la nulabilidad adecuada.
Versión 1.4.0-rc01
13 de octubre de 2021
Se lanzaron androidx.activity:activity:1.4.0-rc01
, androidx.activity:activity-compose:1.4.0-rc01
y androidx.activity:activity-ktx:1.4.0-rc01
. La versión 1.4.0-rc01 contiene estas confirmaciones.
Correcciones de errores
ActivityResultRegistry
ya no mostrará un resultado paraActivityResultCallback
cuando la llamadalaunch
arroje cualquierException
. (If4f91, b/200845664)
Versión 1.4.0-beta01
29 de septiembre de 2021
Lanzamiento de androidx.activity:activity:1.4.0-beta01
, androidx.activity:activity-compose:1.4.0-beta01
y androidx.activity:activity-ktx:1.4.0-beta01
. La versión 1.4.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se corrigió el tipo de
ActivityResultContracts.OpenMultipleDocuments
yActivityResultContracts.GetMultipleContents
que hacía que se usara un tipo de salida deList<? extends Uri>
cuando se utilizaba el código de el lenguaje de programación Java. (If71de) - Ahora se puede acceder a las constantes públicas dentro de las clases
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
yActivityResultContracts.RequestMultiplePermissions
cuando se usa Kotlin mediante sus objetosCompanion
que ahora son públicos. (aosp/1832555)
Actualizaciones de la documentación
- El mensaje que indica que las APIs ahora están a cargo de las APIs de Activity Result, es decir,
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
yonRequestPermissionsResult
, se expandieron con más detalles (cce80f)
Versión 1.4.0-alpha02
15 de septiembre de 2021
Lanzamiento de androidx.activity:activity:1.4.0-alpha02
, androidx.activity:activity-compose:1.4.0-alpha02
y androidx.activity:activity-ktx:1.4.0-alpha02
. La versión 1.4.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- El artefacto
activity-compose
ahora contiene un error de lintLaunchDuringComposition
que impide llamar al métodolaunch
deActivityResultLauncher
como parte de la composición, ya que la composición no debería tener efectos secundarios. Usa las API para procesar efectos secundarios. (7c2bbe, b/191347220)
Cambios en la API
- Se reescribió la clase
ActivityResultContract
en Kotlin a fin de garantizar que los desarrolladores que escriben contratos personalizados en Kotlin puedan definir la nulabilidad correcta para sus clases de entrada y salida. (I8a8f5) - La clase
ActivityResultContracts
y sus contratos se reescribieron en Kotlin para garantizar la nulabilidad adecuada. (I69802)
Versión 1.4.0-alpha01
1 de septiembre de 2021
Lanzamiento de androidx.activity:activity:1.4.0-alpha01
, androidx.activity:activity-compose:1.4.0-alpha01
y androidx.activity:activity-ktx:1.4.0-alpha01
. La versión 1.4.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
ComponentActivity
de AndroidX ahora implementa la interfazMenuHost
. Esto permite que cualquier componente agregue elementos de menú aActionBar
mediante una instancia deMenuProvider
a la actividad. De manera opcional, se puede agregar cadaMenuProvider
con unLifecycle
que controlará automáticamente la visibilidad de esos elementos del menú en función del estado deLifecycle
y controlará la eliminación delMenuProvider
cuandoLifecycle
se destruya. (I3b608):
/**
* Using the addMenuProvider() API directly in your Activity
**/
class ExampleActivity : ComponentActivity(R.layout.activity_example) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
})
}
}
/**
* Using the addMenuProvider() API in a Fragment
**/
class ExampleFragment : Fragment(R.layout.fragment_example) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// The usage of an interface lets you inject your own implementation
val menuHost: MenuHost = requireActivity()
// Add menu items without using the Fragment Menu APIs
// Note how we can tie the MenuProvider to the viewLifecycleOwner
// and an optional Lifecycle.State (here, RESUMED) to indicate when
// the menu should be visible
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
}
Cambios en el comportamiento
- El objeto
ActivityResultRegistry
ahora arrojará unIllegalStateException
cuando se intente llamar alaunch()
en un elementoActivityResultLauncher
que no se haya registrado o cuyo registro se haya cancelado. (Ida75d, b/192567522)
Contribución externa
- Agradecemos a dmitrilc por corregir un error tipográfico en la documentación de
ActivityResult
. (#221)
Versión 1.3.1
Versión 1.3.1
4 de agosto de 2021
Lanzamiento de androidx.activity:activity:1.3.1
, androidx.activity:activity-compose:1.3.1
y androidx.activity:activity-ktx:1.3.1
. La versión 1.3.1 contiene estas confirmaciones.
Actualizaciones de dependencias
- Activity ahora depende de Kotlin
1.5.21
. - Activity Compose ahora depende de Compose
1.0.1
.
Versión 1.3.0
Versión 1.3.0
28 de julio de 2021
Lanzamiento de androidx.activity:activity:1.3.0
, androidx.activity:activity-compose:1.3.0
y androidx.activity:activity-ktx:1.3.0
. La versión 1.3.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.2.0
- Artefacto Activity de Compose: El artefacto
activity-compose
brinda el método de extensiónsetContent
para alojar la IU de Jetpack Compose en una actividad y los wrappers específicos de Compose para interactuar con las API deComponentActivity
a fin de controlar el botón Atrás del sistema y las API de Activity Result. Para obtener más detalles, consulta la documentación. - Contrato CaptureVideo:
ActivityResultContract
deCaptureVideo
reemplaza el contratoTakeVideo
ya obsoleto y muestra un valor booleano que indica que funciona de manera correcta en muchas apps de cámara. - Seguimiento de vista para el ajuste de pantalla en pantalla: Los usuarios de
activity-ktx
ahora pueden usar el método de extensióntrackPipAnimationHintView
enActivity
a fin de volver a compilarPictureInPictureParams
automáticamente con la posición nueva de la vista a medida que cambia de posición en relación con la ventana.
Versión 1.3.0-rc02
14 de julio de 2021
Lanzamiento de androidx.activity:activity:1.3.0-rc02
, androidx.activity:activity-compose:1.3.0-rc02
y androidx.activity:activity-ktx:1.3.0-rc02
. La versión 1.3.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Las devoluciones de llamada
ActivityResultRegistry
ahora se almacenan y se restauran correctamente, de modo que no se duplican en savedState. (I97816, b/191893160)
Versión 1.3.0-rc01
1 de julio de 2021
Lanzamiento de androidx.activity:activity:1.3.0-rc01
, androidx.activity:activity-compose:1.3.0-rc01
y androidx.activity:activity-ktx:1.3.0-rc01
sin modificaciones desde la versión 1.3.0-beta02
. La versión 1.3.0-rc01 contiene estas confirmaciones.
Versión 1.3.0-beta02
16 de junio de 2021
Lanzamiento de androidx.activity:activity:1.3.0-beta02
, androidx.activity:activity-compose:1.3.0-beta02
y androidx.activity:activity-ktx:1.3.0-beta02
. La versión 1.3.0-beta02 contiene estas confirmaciones.
Se actualizó activity-compose
para que dependa de Compose 1.0.0-beta09
. Ahora androidx.compose.ui:ui-test-junit4
tiene una dependencia de tiempo de compilación en activity-compose
.
Versión 1.3.0-beta01
2 de junio de 2021
Lanzamiento de androidx.activity:activity:1.3.0-beta01
, androidx.activity:activity-compose:1.3.0-beta01
y androidx.activity:activity-ktx:1.3.0-beta01
. La versión 1.3.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se quitó el método
@Composable registerForActivityResult()
que había dejado de estar disponible previamente. UsarememberLauncherForActivityResult()
. (Ic39d3)
Versión 1.3.0-alpha08
18 de mayo de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha08
, androidx.activity:activity-compose:1.3.0-alpha08
y androidx.activity:activity-ktx:1.3.0-alpha08
. La versión 1.3.0-alpha08 contiene estas confirmaciones.
Nuevas funciones
- El nuevo
CaptureVideo
ActivityResultContract
muestra un valor booleano para tuActivityResultCallback
, que indica si tu video se guardó correctamente en el URI dado. Esto reemplaza al contratoTakeVideo
actualmente obsoleto, ya que las apps de cámara rara vez permitían mostrar un mapa de bits en miniatura, lo que hacía que el resultado no fuera útil. (Ie21f2, b/185938070) - Se agregó una nueva API
Activity#setPipAnimationHintView
para actualizar el ajuste del rect de origen de PipParams cada vez que la vista se desplaza. (I9063d)
Cambios en la API
- Ahora, la función
rememberLauncherForActivityResult
muestra un selector en el que deja de estar disponible la funciónunregister()
. El registro y la cancelación del registro del selector se gestionan automáticamente a través derememberLauncherForActivityResult
. (I2443e)
Compatibilidad con Compose
androidx.activity:activity-compose:1.3.0-alpha08
solo es compatible con Compose1.0.0-beta07
y versiones posteriores.
Versión 1.3.0-alpha07
21 de abril de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha07
, androidx.activity:activity-compose:1.3.0-alpha07
y androidx.activity:activity-ktx:1.3.0-alpha07
. La versión 1.3.0-alpha07 contiene estas confirmaciones.
Correcciones de errores
rememberLauncherForActivityResult
ahora muestra una referencia estable de la misma instancia queActivityResultLauncher
, incluso si el contrato cambia con las recomposiciones. (Id2d6d)- Si usas versiones inestables de Fragments por encima de
1.3.0
ya no arrojará un falso positivo de lint con la indicación de usar1.3.0
. (aosp/1670206, b/184847092)
Versión 1.3.0-alpha06
7 de abril de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha06
, androidx.activity:activity-compose:1.3.0-alpha06
y androidx.activity:activity-ktx:1.3.0-alpha06
. La versión 1.3.0-alpha06 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de la API de
registerForActivityResult()
arememberLauncherForActivityResult()
a fin de indicar mejor que elActivityResultLauncher
que se muestra es un objeto administrado que se recuerda por ti. Ahora, si intentas llamar aunregister
, elActivityResultLauncher
que se muestra arrojará un error. (I2bb6d) LocalOnBackPressedDispatcherOwner.current
yLocalActivityResultRegistryOwner.current
ahora muestran un valor anulable para determinar mejor si están disponibles en la composición actual. Las API que requieren esas API, comoBackHandler
yrememberLauncherForActivityResult()
, respectivamente, ahora mostrarán un error más descriptivo si no se encuentra el propietario subyacente. AhoraNavHost
funciona incluso cuando no se encuentra unOnBackPressedDispatcherOwner
, por ejemplo, cuando se obtiene una vista previa deNavHost
. (I7d8b4)
Correcciones de errores
- El objeto
BackHandler
interceptará correctamente la pulsación del botón Atrás cuando la actividad seaSTOPPED
y, luego,STARTED
nuevamente. También se agregaron otras devoluciones de llamadas con un LifecycleOwner. (I71de6, b/182284739) - Ya no se mostrará una
NullPointerException
si se usa el método de extensiónlaunch()
con unActivityResultContract
personalizado que tiene una entrada deUnit
. (I76282, b/183837954).
Versión 1.3.0-alpha05
24 de marzo de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha05
, androidx.activity:activity-compose:1.3.0-alpha05
y androidx.activity:activity-ktx:1.3.0-alpha05
. La versión 1.3.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
- Desde Activity versión 1.2.2: Se corrigió un problema con la comprobación de lint de
InvalidFragmentVersionForActivityResult
que producía un falso positivo cuando se usaba Fragment versión 1.3.1 o posterior. (I54da1, b/182388985) - Desde Activity versión 1.2.2: ahora,
ComponentActivity
evita unClassNotFoundException
cuando se inicia unIntent
desde unActivityResultContract
que se retenía como elemento adicional en otroIntent
. (Ieff05, b/182906230)
Actualizaciones de dependencias
- Desde Activity versión 1.2.2: ahora, Activity depende de Lifecycle versión
2.3.1
.
Versión 1.3.0-alpha04
10 de marzo de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha04
, androidx.activity:activity-compose:1.3.0-alpha04
y androidx.activity:activity-ktx:1.3.0-alpha04
. La versión 1.3.0-alpha04 contiene estas confirmaciones.
Correcciones de errores
- Desde Activity
1.2.1
:RequestMultiplePermissions
ahora siempre muestra los resultados para todos los permisos solicitados en lugar de hacerlo solamente con los permisos que no se otorgaron anteriormente. (I50bc3, b/180884668) - Desde Activity
1.2.1
:ActivityResultRegistry
ahora garantiza que las solicitudeslaunch()
en curso muestren sus resultados incluso si usasunregister()
y luegoregister()
otra vez con la misma clave. (I9ef34, b/181267562) - Activity Compose ya no agrega dependencias de prueba a la ruta de clase del tiempo de ejecución. (Ifd8b3)
- Se solucionó un problema con
BackHandler
en el que todavía se usaba el lambda deonBack
configurado anteriormente después de la recomposición. (8eb5eb)
Versión 1.3.0-alpha03
24 de febrero de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha03
, androidx.activity:activity-compose:1.3.0-alpha03
y androidx.activity:activity-ktx:1.3.0-alpha03
. La versión 1.3.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Ahora existe una función
registerForActivityResult
que admite composición para obtener resultados de actividades dentro de elementos que se pueden componer. (Ia7851, b/172690553)
Cambios en la API
LocalOnBackPressedDispatcherOwner
ahora tiene una funciónprovides
que se puede usar conCompositionLocalProvider
y reemplaza la APIasProvidableCompositionLocal()
. (I45d24)
Versión 1.3.0-alpha02
10 de febrero de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha02
, androidx.activity:activity-compose:1.3.0-alpha02
y androidx.activity:activity-ktx:1.3.0-alpha02
. La versión 1.3.0-alpha02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema de Activity Compose
1.3.0-alpha01
que provocaba una excepciónNoSuchMethodError: No static method setContent
cuando se usaba Compose1.0.0-alpha12
. Todos los usuarios de Compose deben depender de1.3.0-alpha02
y versiones posteriores. (b/179911234)
Cambios en la API
- Se puede usar la API
BackHandler
para permitir que un objeto Composable intercepte el botón Atrás del sistema. (I58ed5, b/172154006)
Versión 1.3.0-alpha01
10 de febrero de 2021
Lanzamiento de androidx.activity:activity:1.3.0-alpha01
, androidx.activity:activity-compose:1.3.0-alpha01
y androidx.activity:activity-ktx:1.3.0-alpha01
. La versión 1.3.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- El nuevo artefacto
activity-compose
proporciona asistentes específicos de Jetpack Compose para API específicas deandroidx.activity
.ComponentActivity.setContent
se trasladó deandroidx.compose.ui.platform.setContent
aandroidx.activity.compose.setContent
. (Icf416)
Errores conocidos
- Usar Activity Compose
1.3.0-alpha01
y las bibliotecas que dependen de él, comoandroidx.compose.ui:ui-test-junit4:1.0.0-alpha12
, generarán una excepciónNoSuchMethodError: No static method setContent
. (b/179911234)
Versión 1.2.4
Versión 1.2.4
21 de julio de 2021
Lanzamiento de androidx.activity:activity:1.2.4
y androidx.activity:activity-ktx:1.2.4
. La versión 1.2.4 contiene estas confirmaciones.
Correcciones de errores
- Desde Activity versión
1.3.0-rc02
, las devoluciones de llamada ActivityResultRegistry ahora se almacenan y se restauran correctamente, de modo que no se duplican en savedState. (I97816, b/191893160)
Versión 1.2.3
Versión 1.2.3
5 de mayo de 2021
Lanzamiento de androidx.activity:activity:1.2.3
y androidx.activity:activity-ktx:1.2.3
. La versión 1.2.3 contiene estas confirmaciones.
Correcciones de errores
- Ya no se mostrará una
NullPointerException
si se usa el método de extensiónlaunch()
con unActivityResultContract
personalizado que tiene una entrada deUnit
. (I76282, b/183837954). - Se corrigió un error falso positivo de lint que indicaba que usaras Fragment
1.3.0
cuando se utilizaba una instantánea, alfa, beta o una compilación RC de una versión más reciente de Fragments. (f4a57e, b/184847092)
Versión 1.2.2
Versión 1.2.2
24 de marzo de 2021
Lanzamiento de androidx.activity:activity:1.2.2
y androidx.activity:activity-ktx:1.2.2
. La versión 1.2.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error en la comprobación de lint de
InvalidFragmentVersionForActivityResult
que producía un falso positivo cuando se usaba Fragment versión 1.3.1 o posterior. (I54da1, b/182388985) - Ahora,
ComponentActivity
evitaClassNotFoundException
cuando se lanza el elementoIntent
desdeActivityResultContract
que se retenía como un elemento adicional en otroIntent
. (Ieff05, b/182906230)
Actualizaciones de dependencias
- La actividad ahora depende de Lifecycle
2.3.1
.
Versión 1.2.1
Versión 1.2.1
10 de marzo de 2021
Lanzamiento de androidx.activity:activity:1.2.1
y androidx.activity:activity-ktx:1.2.1
. La versión 1.2.1 contiene estas confirmaciones.
Correcciones de errores
- Ahora
RequestMultiplePermissions
siempre muestra los resultados para todos los permisos solicitados en lugar de hacerlo solamente con los permisos que no se otorgaron anteriormente. (I50bc3, b/180884668) ActivityResultRegistry
ahora garantiza que las solicitudeslaunch()
en curso muestren sus resultados incluso si usasunregister()
, y luegoregister()
con la misma clave otra vez. (I9ef34, b/181267562)
Versión 1.2.0
Versión 1.2.0
10 de febrero de 2021
Lanzamiento de androidx.activity:activity:1.2.0
y androidx.activity:activity-ktx:1.2.0
. La versión 1.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.1.0
- API de Activity Result:
ComponentActivity
ahora proporciona unActivityResultRegistry
que te permite controlarstartActivityForResult()
yonActivityResult()
, además de flujosrequestPermissions()
+onRequestPermissionsResult()
, sin anular los métodos de tu Activity o Fragment. Además, proporciona un tipo de seguridad mejorado medianteActivityResultContract
y hooks para probar estos flujos. Consulta la información actualizada en Cómo obtener un resultado de una actividad.
ContextAware
:ComponentActivity
ahora implementaContextAware
, lo que te permite agregar una o más instancias deOnContextAvailableListener
para recibir la devolución de llamada antes de la bseActivity.onCreate()
.- Una extensión Kotlin de suspensión
withContextAvailable()
te permite ejecutar un bloque sin suspensión cuando el Contexto esté disponible y muestra un resultado. FragmentActivity
usa esta API en Fragment 1.3.0 para restablecer el estado deFragmentManager
. Los objetos de escucha agregados a las subclases deFragmentActivity
se ejecutarán después de ese objeto de escucha.AppCompatActivity
usa esta API en AppCompat 1.3.0-alpha02 y versiones posteriores. Los objetos de escucha agregados a las subclases deAppCompatActivity
se ejecutarán después de ese objeto de escucha.
- Una extensión Kotlin de suspensión
Compatibilidad con
ViewTree
:ComponentActivity
ahora admite las APIViewTreeLifecycleOwner.get(View)
ViewTreeViewModelStoreOwner.get(View)
yViewTreeSavedStateRegistryOwner
que se agregaron en Lifecycle2.3.0
y SavedState1.1.0
, de manera que se mostrará Activity comoLifecycleOwner
,ViewModelStoreOwner
ySavedStateRegistryOwner
en todas las View que se agreguen directamente aComponentActivity
.
- reportFullyDrawn() backport: Se brindó portabilidad a versiones anteriores de
ComponentActivity
del métodoActivity
dereportFullyDrawn()
a fin de que funcionara en todos los niveles de API, lo que corrigió un error en la API 19 y agregó el registro para esté método en todos los niveles de API.
Versión 1.2.0-rc01
16 de diciembre de 2020
Lanzamiento de androidx.activity:activity:1.2.0-rc01
y androidx.activity:activity-ktx:1.2.0-rc01
. La versión 1.2.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Ahora,
ActivityResultRegistry
siempre restablece el estado exacto que se guardó. (Idd56b) - Se agregó seguimiento de
ComponentActivity.reportFullyDrawn
. (Ic7632)
Contribución externa
ComponentActivity
ahora anulareportFullyDrawn()
, lo que permite que se llame en todos los niveles de API y corrige una falla que se producía cuando se llamaba a este método sin el permiso del sistema adecuado en dispositivos con nivel de API 19. ¡Gracias, Simon Schiller! (b/163239764, #103)
Versión 1.2.0-beta02
2 de diciembre de 2020
Lanzamiento de androidx.activity:activity:1.2.0-beta02
y androidx.activity:activity-ktx:1.2.0-beta02
. La versión 1.2.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema por el que la API de Activity Result no esperaba que Lifecycle tuviera el estado
STARTED
antes de mostrar resultados cuando se registraba con unLifecycle
. (I109ea)
Contribución externa
- Se actualizó la documentación de
launch()
para indicar explícitamente que puede arrojar unActivityNotFoundException
. ¡Gracias, Michał Zieliński! (aosp/1493580)
Versión 1.2.0-beta01
1 de octubre de 2020
Lanzamiento de androidx.activity:activity:1.2.0-beta01
y androidx.activity:activity-ktx:1.2.0-beta01
. La versión 1.2.0-beta01 contiene estas confirmaciones.
Correcciones de errores
Ahora,
ActivityResultRegistry
genera números enteros de forma aleatoria hasta encontrar uno que no esté asignado para usarse como código de solicitudregister()
, lo que evita el posible desbordamiento de números enteros causado por el aumento de códigos de solicitud. (b/168779518)Los observadores de
Lifecycle
se quitan correctamente cuando se llama aunregister()
en unActivityResultLauncher
. (b/165608393)
Cambios en el comportamiento
- El objeto
ActivityResultRegistry
ahora arroja una excepciónIllegalStateException
cuando se intenta llamar aregister()
con un elementoLifecycleOwner
cuyoLifecycle
ya alcanzóSTARTED
. (b/165435866)
Documentación actualizada
- La documentación de
ContextAware
se vincula aLifecycleOwner
para destacar las devoluciones de llamada deLifecycle
como el lugar adecuado para eventos de creación y destrucción. (aosp/1414152)
Versión 1.2.0-alpha08
19 de agosto de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha08
y androidx.activity:activity-ktx:1.2.0-alpha08
. La versión 1.2.0-alpha08 contiene estas confirmaciones.
Nuevas funciones
ComponentActivity
ahora implementaContextAware
, lo que permite que agregues una o más instancias deOnContextAvailableListener
, que recibirán una devolución de llamada antes delActivity.onCreate()
base. (b/161390636)- Una extensión Kotlin de suspensión
withContextAvailable()
te permite ejecutar un bloque sin suspensión cuando el Contexto esté disponible y muestra un resultado. (I8290c) FragmentActivity
usa esta API en Fragment 1.3.0-alpha08 para restablecer el estado deFragmentManager
. Los objetos de escucha agregados a las subclases deFragmentActivity
se ejecutarán después de ese objeto de escucha. (I513da)AppCompatActivity
usa esta API en AppCompat 1.3.0-alpha02. Los objetos de escucha agregados a las subclases deAppCompatActivity
se ejecutarán después de ese objeto de escucha. (I513da)
- Una extensión Kotlin de suspensión
Correcciones de errores
- Se corrigió un error con la comprobación de Lint
ActivityResultFragmentVersionDetector
que impedía su correcto funcionamiento cuando se usaba Lint 27.1.0 o una versión posterior. (b/162155191)
Versión 1.2.0-alpha07
22 de julio de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha07
y androidx.activity:activity-ktx:1.2.0-alpha07
. La versión 1.2.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
- Se agregó una nueva verificación de Lint
InvalidFragmentVersionForActivityResult
que comprueba que estés usando el elemento Fragment1.3.0-alpha07
cuando usas la API de Activity Result, lo que evita fallas en el tiempo de ejecución debido a problemas de "código de solicitud no válido" y solicitudes de permisos que no funcionan como consecuencia a versiones anteriores de Fragment. (b/152554847)
Contribución externa
- Se corrigió un elemento
ArrayIndexOutOfBoundsException
cuando se analizaban los resultados del contrato del objeto Activity Result del parámetroRequestPermission
. (I8f9e3, b/161057605)
Versión 1.2.0-alpha06
10 de junio de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha06
y androidx.activity:activity-ktx:1.2.0-alpha06
. La versión 1.2.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Ahora puedes desestructurar la clase
ActivityResult
en Kotlin para acceder directamente arequestCode
yintent
. (b/157212935) ActivityResultLauncher
ahora te permite obtener el objetoActivityResultContract
que se usó para registrar el selector. (b/156875743)
Cambios en la API
- Cambio rotundo: se cambió el nombre del método
invoke()
enActivityResultRegistry
aonLaunch()
. (b/157496491) - El contrato
OpenMultipleDocuments
ahora muestra una lista vacía en lugar denull
para la devolución de llamada registrada cuando no haya ningún resultado para mostrar. (b/157348014)
Versión 1.2.0-alpha05
20 de mayo de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha05
y androidx.activity:activity-ktx:1.2.0-alpha05
. La versión 1.2.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad para el objeto
ViewTreeViewModelStoreOwner
del elemento Lifecycle2.3.0-alpha03
y para el objetoViewTreeSavedStateRegistryOwner
del elemento SavedState1.1.0-alpha01
cuando se usa un objetoView
dentro de un elementoComponentActivity
. (aosp/1297993, aosp/1300264)
Cambios en la API
- Ahora, el contrato del objeto
TakePicture
muestra un elementoboolean
que indica el éxito en lugar de una miniatura del objetoBitmap
, ya que las apps de cámara casi nunca la admitían cuando se escribía la imagen al elementoUri
proporcionado. (b/154302879) - Se quitaron las extensiones
invoke()
en el objetoActivityResultLauncher
para usar, de manera explícita, la extensiónlaunch()
a fin de indicar mejor que son operaciones asíncronas. Se agregaron extensiones de Kotlin para el objetolaunch
al paqueteandroidx.activity.result
de los elementosActivityResultLauncher<Void>
yActivityResultLauncher<Unit>
, que quitan la necesidad de pasar los objetosnull
oUnit
, respectivamente, lo que duplica ese comportamiento de las extensionesinvoke()
anteriores. (aosp/1304674, aosp/1304675) - Los métodos
IntentSenderRequest.Builder
para los objetossetFlagsMask()
ysetFlagsValues()
se combinaron en un solo métodosetFlags()
. (aosp/1302111)
Correcciones de errores
- Se corrigió un problema por el que se activaba la devolución de llamada antes de que el estado llegara al elemento
STARTED
cuando se registraba un objetoActivityResultCallback
con un elementoLifecycleOwner
. (aosp/1309744
Cambios en el comportamiento
- Ahora, el objeto
ActivityResultRegistry
genera códigos de solicitud a partir del elemento0xFFFF
en lugar del elemento0
, lo que evita la superposición cuando se usan los objetosstartActivityForResult()
orequestPermissions()
en una actividad. (aosp/1302324)
Versión 1.2.0-alpha04
29 de abril de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha04
y androidx.activity:activity-ktx:1.2.0-alpha04
. La versión 1.2.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Se agregó un contrato que puede llamar a startIntentSenderForResult para las API de ActivityResult. (b/153007517)
Cambios en la API
- Se cambió el nombre del método
prepareCall()
aregisterForActivityResult()
, tanto enComponentActivity
aquí como en el objeto Fragment1.3.0-alpha04
. (aosp/1278717) - Los contratos
GetContents
,OpenDocuments
yRequestPermissions
se renombraron comoGetMultipleContents
,OpenMultipleDocuments
yRequestMultiplePermissions
, respectivamente. (aosp/1280161) ComponentActivity
ahora implementa la interfazActivityResultRegisteryOwner
. (aosp/1290888)- Las API
startActivityForResult()
/onActivityResult()
yonRequestPermissionsResult()
deComponentActivity
se dieron de baja. Usa las API de Activity Result. (b/154751887)
Correcciones de errores
- Al usar los contratos
GetMultipleContents
yOpenMultipleDocuments
, y seleccionar un solo elemento, ahora se muestra correctamente en tu devolución de llamada. (b/152941153)
Versión 1.2.0-alpha03
1 de abril de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha03
y androidx.activity:activity-ktx:1.2.0-alpha03
. La versión 1.2.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron los contratos
TakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
yCreateDocument
al conjunto de contratos previamente compilados proporcionados porActivityResultContracts
. (aosp/1262482, aosp/1266916, aosp/1268960) - Las API de Activity Result ahora admiten el lanzamiento de una actividad para el resultado con un objeto
ActivityOptionsCompat
opcional. (b/151860054)
Cambios en la API
- El contrato
TakePicture
ahora acepta una entradaUri
en la que se debe almacenar la imagen. Se cambió el nombre del contrato anterior que no acepta ninguna entrada aTakePicturePreview
. (aosp/1262482) - Se cambió el nombre del método
registerActivityResultCallback()
deActivityResultRegistry
aregister()
. (aosp/1267621) - Se cambió el nombre del método
dispose()
deActivityResultLauncher
aunregister()
y se quitóunregisterResultCallback()
deActivityResultRegistry
. (aosp/1267621) - El método
createIntent()
deActivityResultContact
ahora lleva unContext
además de la entrada para que sea posible crear intents explícitos. (aosp/1238800) - Un contrato
ActivityResultContract
ahora puede omitirgetSynchronousResult()
para entregar un resultado sin llamar astartActivityForResult
. Los contratosRequestPermission
yRequestPermissions
lo usan para entregar correctamente el estado "otorgado" si ya se otorgaron los permisos solicitados. (b/151110799) - Se quitó el contrato
Dial
que estaba disponible anteriormente, ya que eseIntent
no se debe usar constartActivityForResult()
. (aosp/1266916) - Muchas de las API de Activity Result que no se deben extender ahora son
final
. Esto incluyegetActivityResultRegistry()
, los métodosprepareCall()
, todos los métodos deActivityResultRegistry
exceptoinvoke()
y una cantidad de contratos predeterminados que no admiten opciones adicionales. (b/152439361)
Correcciones de errores
- Se corrigió una excepción
NullPointerException
enActivityResultRegistry
cuando se intentaban entregar resultados a una devolución de llamada que todavía no se había vuelto a registrar después de un cambio de configuración;ActivityResultRegistry
ahora retiene esos resultados pendientes y los entrega cuando se vuelve a registrar la devolución de llamada. (b/152137004)
Versión 1.2.0-alpha02
18 de marzo de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha02
y androidx.activity:activity-ktx:1.2.0-alpha02
. La versión 1.2.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- ActivityResultRegistry:
ComponentActivity
ahora proporciona unActivityResultRegistry
que te permite controlar los flujosstartActivityForResult()
+onActivityResult()
yrequestPermissions()
+onRequestPermissionsResult()
sin anular métodos en Activity ni Fragment, aumenta la seguridad de tipo medianteActivityResultContract
y proporciona hooks para probar estos flujos. Consulta la información actualizada en Cómo obtener un resultado de una actividad. (b/125158199)
Versión 1.2.0-alpha01
4 de marzo de 2020
Lanzamiento de androidx.activity:activity:1.2.0-alpha01
y androidx.activity:activity-ktx:1.2.0-alpha01
. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con la API
ViewTreeLifecycleOwner.get(View)
en Lifecycle2.3.0-alpha01
, de manera que mostrará Activity comoLifecycleOwner
para cualquier View que se haya agregado directamente a Activity. (aosp/1182955)
Correcciones de errores
- Se corrigió una regresión que se introdujo en Activity
1.1.0
cuando se ejecutaba en versiones anteriores de la plataforma por la queonBackPressed()
ocasionaba unIllegalStateException
debido a un error enandroid.app.FragmentManager
. (b/146290338)
Versión 1.1.0
Versión 1.1.0
22 de enero de 2020
Lanzamiento de androidx.activity:activity:1.1.0
. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.0.0
- Integración de Lifecycle ViewModel SavedState: Ahora
SavedStateViewModelFactory
es el valor predeterminado de fábrica que se utiliza cuando se usaby viewModels()
, el constructorViewModelProvider
o un objetoViewModelProviders.of()
con unComponentActivity
o sus subclases.
Versión 1.1.0-rc03
4 de diciembre de 2019
Lanzamiento de androidx.activity:activity:1.1.0-rc03
y androidx.activity:activity-ktx:1.1.0-rc03
. La versión 1.1.0-rc03 contiene estas confirmaciones.
Cambios de dependencia
- La actividad ahora depende de Lifecycle
2.2.0-rc03
y Lifecycle ViewModel SavedState1.0.0-rc03
.
Versión 1.1.0-rc02
7 de noviembre de 2019
Lanzamiento de androidx.activity:activity:1.1.0-rc02
y androidx.activity:activity-ktx:1.1.0-rc02
. La versión 1.1.0-rc02 contiene estas confirmaciones.
Cambios de dependencia
- La actividad ahora depende de Lifecycle
2.2.0-rc02
.
Versión 1.1.0-rc01
23 de octubre de 2019
Lanzamiento de androidx.activity:activity:1.1.0-rc01
y androidx.activity:activity-ktx:1.1.0-rc01
sin modificaciones desde 1.1.0-beta01
. La versión 1.1.0-rc01 contiene estas confirmaciones.
Versión 1.1.0-beta01
9 de octubre de 2019
Lanzamiento de androidx.activity:activity:1.1.0-beta01
y androidx.activity:activity-ktx:1.1.0-beta01
. La versión 1.1.0-beta01 contiene estas confirmaciones.
Cambios de dependencia
- La actividad ahora depende de la versión SavedState 1.0.0 estable.
Versión 1.1.0-alpha03
5 de septiembre de 2019
Lanzamiento de androidx.activity:activity:1.1.0-alpha03
y androidx.activity:activity-ktx:1.1.0-alpha03
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
- La actividad ahora depende de la versión Core 1.1.0 estable.
Correcciones de errores
- La actividad ahora depende de Lifecycle
2.2.0-alpha04
.
Versión 1.1.0-alpha02
7 de agosto de 2019
Lanzamiento de androidx.activity:activity:1.1.0-alpha02
y androidx.activity:activity-ktx:1.1.0-alpha02
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
SavedStateViewModelFactory
ahora es el valor predeterminado de fábrica que se utiliza cuando se usaby viewModels()
, el constructorViewModelProvider
o un objetoViewModelProviders.of()
con unComponentActivity
. (b/135716331)
Versión 1.1.0-alpha01
2 julio de 2019
Lanzamiento de androidx.activity:activity:1.1.0-alpha01
y androidx.activity:activity-ktx:1.1.0-alpha01
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Nuevas funciones
activity
ahora depende de Lifecycle2.2.0-alpha02
. (aosp/1007817)activity-ktx
agregó una dependencia enlifecycle-runtime-ktx
; ya no debes agregarlo de forma explícita a tus dependencias cuando usasactivity-ktx
o bibliotecas que dependen deactivity-ktx
(comofragment-ktx
). (aosp/987162)
Versión 1.0.0
Versión 1.0.0
5 de septiembre de 2019
Lanzamiento de androidx.activity:activity:1.0.0
y androidx.activity:activity-ktx:1.0.0
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Funciones principales de la versión 1.0.0
- ComponentActivity:
ComponentActivity
sirve como la nueva clase base paraFragmentActivity
en Fragment1.1.0
y, por extensión,AppCompatActivity
en AppCompat1.1.0
. - activity-ktx: El módulo
activity-ktx
incluye una extensión de propiedad Kotlinby viewModels
para acceder a objetos ViewModel. Este módulo se incluye automáticamente cuando agregasfragment-ktx
desde Fragment1.1.0
. - OnBackPressedDispatcher: Como alternativa que admite composición a la anulación
onBackPressed()
, ahora puedes registrar unOnBackPressedCallback
desde cualquierLifecycleOwner
(como un fragmento) para interceptar eventos del botón Atrás del sistema. Se agregó un función lambda con la versión del receptoraddCallback
aactivity-ktx
. Consulta Cómo proporcionar documentación de navegación posterior personalizada para obtener más detalles. - Baja de onRetainCustomNonConfigurationInstance: Dejaron de estar disponibles las API de
onRetainCustomNonConfigurationInstance()
y las degetLastCustomNonConfigurationInstance()
relacionadas. Se recomienda utilizar objetos ViewModel para almacenar el estado de no configuración, ya que ofrecen una solución que se puede componer adecuada para cualquierViewModelStoreOwner
que aclare la propiedad de los objetos retenidos y proporcione una devolución de llamadaonCleared()
a fin de limpiar recursos cuando se destruye finalmente la actividad.
Versión 1.0.0-rc01
2 julio de 2019
Lanzamiento de androidx.activity:activity:1.0.0-rc01
y androidx.activity:activity-ktx:1.0.0-rc01
sin modificaciones desde 1.0.0-beta01
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Versión 1.0.0-beta01
5 de junio de 2019
Lanzamiento de androidx.activity::activity:1.0.0-beta01
y androidx.activity:activity-ktx:1.0.0-beta01
sin modificaciones desde 1.0.0-alpha08
. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.
Versión 1.0.0-alpha08
7 de mayo de 2019
Lanzamiento de androidx.activity:activity:1.0.0-alpha08
y androidx.activity:activity-ktx:1.0.0-alpha08
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Cambios en la API
- Cambio rotundo: Se quitaron los métodos
addOnBackPressedCallback
yremoveOnBackPressedCallback
que se habían dado de baja enComponentActivity
. aosp/953857 - Los métodos
setEnabled()
yisEnabled()
deOnBackPressedCallback
ahora son finales. b/131416833 - El método
remove()
deOnBackPressedCallback
ahora es final. aosp/952720 OnBackPressedDispatcher
ahora tiene constructores públicos, lo que te permite construir tus propias instancias para pruebas, etc. aosp/953431onBackPressed()
paraComponentActivity
ahora está marcado explícitamente como@MainThread
. aosp/952721
Correcciones de errores
- Se corrigió un error
ConcurrentModificationException
cuando se llama aremove()
desde el métodohandleOnBackPressed()
de un objetoOnBackPressedCalback
que se agregaba con un elementoLifecycleOwner
. b/131765095
Versión 1.0.0-alpha07
25 de abril de 2019
Lanzamiento de androidx.activity:activity:1.0.0-alpha07
y androidx.activity:activity-ktx:1.0.0-alpha07
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Cambios en la API
En esta versión, se realizaron cambios importantes en el manejo de onBackPressed()
. Consulta la documentación de respaldo personalizada y actualizada para obtener más detalles.
- Los métodos para
OnBackPressedCallback
yOnBackPressedDispatcher
se marcaron como@MainThread
. (aosp/943813) - El método
handleOnBackPressed()
ya no muestra un valorboolean
. En cambio,OnBackPressedCallback
ahora es una clase abstracta que se puede habilitar o deshabilitar; solo cuando el nuevo métodoisEnabled()
muestre un verdadero se llamará ahandleOnBackPressed()
, en el que deberás procesar el botón Atrás. (aosp/944518) - Los métodos
addCallback
deOnBackPressedDispatcher
ya no muestran una instanciaCancellable
.OnBackPressedCallback
ahora contiene un métodoremove()
que cumple con esta funcionalidad, lo que te permite llamar aremove()
durantehandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
ahora contiene una devolución de llamada con alcance de receptor paraaddCallback
que acepta una función lamdba que implementahandleOnBackPressed()
y tiene acceso aisEnabled
yremove()
. (aosp/944520)
Versión 1.0.0-alpha06
3 de abril de 2019
Lanzamiento de androidx.activity:activity:1.0.0-alpha06
y androidx.activity:activity-ktx:1.0.0-alpha06
. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.
Cambios en la API
- ComponentActivity ahora contiene un segundo constructor que toma un
@LayoutRes int
, que a su vez reemplaza el comportamiento anterior de anotar la clase AppCompatActivity con@ContentView
. Este enfoque funciona tanto en la app como en los módulos de las bibliotecas. (b/128352521) - Se dieron de baja las API relacionadas con
OnBackPressedCallback
en ComponentActivity y se reemplazaron por el nuevo objetoOnBackPressedDispatcher
, que se puede recuperar a través degetOnBackPressedDispatcher()
. (aosp/922523) - Los métodos para agregar una nueva devolución de llamada
OnBackPressedCallback
alOnBackPressedDispatcher
ahora muestran un objetoCancellable
, lo que permite quitar la devolución de llamada sin solicitar una referencia explícita al objetoOnBackPressedDispatcher
. (aosp/922523) - Ahora, cuando se agrega un objeto
OnBackPressedCallback
con unLifecycleOwner
asociado, se agrega y se quitaOnBackPressedCallback
a medida que se inicia y se detiene el ciclo de vida, respectivamente. (aosp/922523)
Versión 1.0.0-alpha05
13 de marzo de 2019
Lanzamiento de androidx.activity:activity:1.0.0-alpha05
y androidx.activity:activity-ktx:1.0.0-alpha05
. La lista completa de las confirmaciones incluidas en esta versión se encuentra disponible aquí.
Nuevas funciones
- Las búsquedas de anotaciones de
@ContentView
ahora se almacenan en caché. (b/123709449)
Versión 1.0.0-alpha04
30 de enero de 2019
Lanzamiento de androidx.activity:activity 1.0.0-alpha04
y androidx.activity:activity-ktx 1.0.0-alpha04
.
Nuevas funciones
- Se agregó compatibilidad con la anotación de clase
@ContentView
, que te permite indicar qué archivo XML de diseño se debe aumentar, en lugar de utilizarsetContentView()
. (aosp/837619)
Cambios en la API
- Se agregó una nota que indica que no se debería anular
getViewModelStore()
, que será definitivo en una versión futura. Presenta una solicitud de función si actualmente anulas este método. (aosp/837619)
Correcciones de errores
- El módulo
activity
ahora depende de la versión 2.1.0-alpha02 de ViewModel para coincidir con la dependencia del móduloactivity-ktx
.
Versión 1.0.0-alpha03
17 de diciembre de 2018
Lanzamiento de androidx.activity 1.0.0-alpha03
.
Nuevas funciones
- ComponentActivity ahora implementa
BundleSavedStateRegistryOwner
y depende de la biblioteca SavedState publicada recientemente. (aosp/815133) - ComponentActivity ahora evita un error en el framework de Android por el que era posible que InputMethodManager filtrara la última vista enfocada. (b/37122102)
Versión 1.0.0-alpha02
3 de diciembre de 2018
Cambios en la API
- Se agregó una nota que indica que no se debe anular
getLifecycle()
, que se volveráfinal
en una versión futura. Presenta una solicitud de función si actualmente anulas este método. (aosp/815834)
Versión 1.0.0-alpha01
5 de noviembre de 2018
androidx.activity 1.0.0-alpha01
incluye ComponentActivity
, una nueva clase base de los componentes FragmentActivity
y AppCompatActivity
existentes.
Nuevas funciones
- Ahora puedes registrar una
OnBackPressedCallback
a través deaddOnBackPressedCallback
para recibir devoluciones de llamada deonBackPressed()
sin necesidad de anular el método en tu actividad. - Se agregó un nuevo delegado de propiedades de
by viewModels()
de Kotlin para recuperar objetosViewModel
de unComponentActivity
. - Los eventos de entrada pendientes (como los clics) ahora se cancelan en
onStop()
.
Cambios en la API
- La implementación de
LifecycleOwner
yViewModelStoreOwner
se transfirió deFragmentActivity
aComponentActivity
. - Se dio de baja el elemento
onRetainCustomNonConfigurationInstance
. Usa unViewModel
para almacenar objetos que deban permanecer vigentes frente a los cambios de configuración.