Actividad

Accede a las API que admiten composición compiladas sobre Activity.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
4 de septiembre de 2024 1.9.2 - - 1.10.0-alpha02

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.3"

    // Java language implementation
    implementation "androidx.activity:activity:$activity_version"
    // Kotlin
    implementation "androidx.activity:activity-ktx:$activity_version"
}

Kotlin

dependencies {
    val activity_version = "1.9.3"

    // 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.

Crear un error nuevo

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-alpha02

4 de septiembre de 2024

Lanzamiento de androidx.activity:activity:1.10.0-alpha02, androidx.activity:activity-compose:1.10.0-alpha02 y androidx.activity:activity-ktx:1.10.0-alpha02. La versión 1.10.0-alpha02 contiene estas confirmaciones.

Cambios en el comportamiento

  • Los contratos de resultado de la actividad PickVisualMedia y PickMultipleVisualMedia que activan el selector de fotos ya no delega directamente a los Servicios de Google Play si el selector de fotos del sistema no está disponible, sino que usa la acción pública ACTION_SYSTEM_FALLBACK_PICK_IMAGES y los elementos adicionales relacionados para proporcionar una experiencia coherente del selector de fotos a los OEM y las apps del sistema como resguardo. Esto no debería afectar la experiencia del usuario en los dispositivos que tienen una versión reciente de los Servicios de Google Play. (I3513d).

Correcciones de errores

  • Se quitó la descripción manual del acceso a las nuevas APIs de la plataforma, ya que esto sucede automáticamente a través del modelado de API cuando se usa R8 con AGP 7.3 o versiones posteriores (por ejemplo, R8 versión 3.3) y para todas las compilaciones cuando se usa AGP 8.1 o versiones posteriores (p. ej., D8 versión 8.1). Se recomienda a los clientes que no usan AGP que actualicen a D8 8.1 o versiones posteriores. Consulta este artículo para obtener más detalles. (I9496c, b/345472586).
  • A partir de Activity 1.9.2: Se corrigió un problema por el que la API de Activity Compose PredictiveBackHandler continuaba controlando el gesto atrás del sistema en el marco en el que se había inhabilitado, lo que podía hacer que las bibliotecas como Navigation Compose lo controlaran incluso con una pila de actividades vacía, lo que arrojaba un IndexOutOfBoundsException. (Ie3301, b/340202286).
  • A partir de Activity 1.9.1: Se corrigió un problema con PredictiveBackHandler por el que, después de volver a hacer el sistema, no se intentaba realizar onBackPressed desde OnBackPressedDispatcher. (I5f1f8).

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.2

4 de septiembre de 2024

Lanzamiento de androidx.activity:activity:1.9.2, androidx.activity:activity-compose:1.9.2 y androidx.activity:activity-ktx:1.9.2. La versión 1.9.2 contiene estos lthcocommits.

Correcciones de errores

  • Se corrigió un problema por el que la API de PredictiveBackHandler de Activity Compose continuaba controlando el gesto atrás del sistema en el marco en el que se inhabilitó, lo que podía hacer que bibliotecas como Navigation Compose lo controlaran incluso con una pila de actividades vacía, lo que provocaba que se arrojara un IndexOutOfBoundsException. (Ie3301, b/340202286).

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 en el que, después de volver a hacer el sistema, fallaba el intento de hacer onBackPressed desde OnBackPressedDispatcher. (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 implementa OnUserLeaveHintProvider para permitir que los componentes realicen devoluciones de llamada de eventos onUserLeaveHint.
  • Las APIs de OnBackPressedCallback, BackHandler y PredictiveBackHandler ahora muestran una advertencia cuando se llama a onBackPressedDispatcher.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 a activity. activity-ktx ahora está completamente vacío.
    • Como parte de la conversión de ActivityResultLauncher a Kotlin, el método getContract ahora es una propiedad abstracta de Kotlin. Este es un cambio compatible con objetos binarios, pero la fuente falla si tu implementación de ActivityResultLauncher está escrita en Kotlin.

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

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 a OnBackPressedDispatcher 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

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 un ComponentActivity por primera vez desde un subproceso en segundo plano. Ahora es seguro acceder a onBackPressedDispatcher 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 a register se pasará correctamente al ActivityResultLauncher que se te muestra. (I121f0).
  • Se reescribió ActivityResult en Kotlin. Las extensiones de Kotlin ActivityResult que admiten la desestructuración en los campos resultCode y data se movieron de activity-ktx a activity. (I0565a).
  • Las extensiones de Kotlin de by viewModels() para ComponentActivity y trackPipAnimationHintView se movieron de activity-ktx a activity. Ahora el artefacto activity-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 elemento ACTION_SYSTEM_FALLBACK_PICK_IMAGES del contrato de la actividad del selector de fotos para pasarle correctamente la clave EXTRA_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 implementa OnUserLeaveHintProvider para permitir que los componentes realicen devoluciones de llamada de eventos onUserLeaveHint. (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étodo getContract ahora es una propiedad abstracta de Kotlin. Este es un cambio compatible con objetos binarios, pero la fuente falla si tu implementación de ActivityResultLauncher está escrita en Kotlin. (Id4615).
  • PickVisualMediaRequest ahora tiene el mismo nivel mínimo de API, 19, que el contrato de Activity Result de PickVisualMedia. (Id6e21).

Actualización de dependencia

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 clave EXTRA_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 al OnBackPressedCallback correcto, incluso después de que se agrega un nuevo OnBackPressedCallback 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 llamada handleOnBackPressed() anterior para cuando se confirma el gesto atrás. También incluye el elemento componible PredictiveBackHandler 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 un Flow de objetos BackEventCompat 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 a collect(). (Id2773, b/294884345).

  • onBackPressedDispatcher en ComponentActivity 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 llamada onBackPressed() y la actividad ya haya sido DESTROYED. (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 de enableEdgeToEdge, ahora puedes anular el parámetro lambda detectDarkMode 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 de BackEvent que está separada de la clase BackEvent del framework.
  • Cambio rotundo: Los métodos handleOnBackStarted y handleOnBackProgressed de OnBackPressedCallback ahora reciben una instancia androidx.activity.BackEventCompat en lugar de una clase android.window.BackEvent de framework. También se actualizaron las APIs de @VisibleForTesting equivalentes en OnBackPressedDispatcher.
  • El constructor de OnBackPressedDispatcher ahora toma una instancia opcional de Consumer<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 de ReportDrawn que se producía cuando se salía de una pantalla antes de llamar a report. (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

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 usar OnBackPressedDispatcher, en lugar de anular este método. (Ibce2f, b/271596918).
  • ComponentDialog y ComponentActivity ahora contienen la API pública initViewTreeOwners() 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 usa Random 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

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 de handleOnBackPressed() 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 a report (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 usa ComponentActivity con ActivityScenario. (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 y PickMultipleVisualMedia se actualizaron para contener un resguardo adicional para cuando MediaStore.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 usar Intent.ACTION_OPEN_DOCUMENT, que sigue siendo compatible con todos los dispositivos de API 19 y versiones posteriores.
  • ComponentDialog ahora implementa SavedStateRegistryOwner y tiene acceso a su propio SavedStateRegistry y establece el SavedStateRegistryOwner para su ViewTree. Ahora es posible usar Jetpack Compose dentro de un ComponentDialog, ya que cumple con LifecycleOwner y SavedStateRegistryOwner adjuntos a Window mediante los requisitos de las APIs de ViewTree.
  • IntentSenderRequest.Builder.setFlags() ahora te permite configurar varias marcas de Intent, 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

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

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 y PickMultipleVisualMedia como resguardo cuando MediaStore.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 de Intent, 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 propiedad activityResultRegistry en lugar de implementar la función getActivityResultRegistry() 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 propiedad onBackPressedDispatcher en lugar de implementar la función getOnBackPressedDispatcher anterior (Ia277d).
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest y OnBackPressedDispatcher 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 y PickMultipleVisualMedia 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 de isPhotoPickerAvailable() que solo detecta el selector de fotos proporcionado por el sistema Android dejó de estar disponible. Se recomienda usar la nueva API de isPhotoPickerAvailable(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 implementa SavedStateRegistryOwner y tiene acceso a su propio SavedStateRegistry y establece SavedStateRegistryOwner para ViewTree. Ahora, es posible usar Jetpack Compose dentro de un ComponentDialog, ya que cumple con LifecycleOwner y SavedStateRegistryOwner 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 a reportFullyDrawn (Ic5b14, b/259687964).

Conversiones de Kotlin

  • Las clases ActvitiyResultCallback y OnBackPressedCallback 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 de PickMultipleVisualMedia en dispositivos Android R cuando se usaba el valor predeterminado para maxItems (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 para maxItems (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 y ActivityResultContracts.PickMultipleVisualMedia para proporcionar un contrato retrocompatible que use MediaStore.ACTION_PICK_IMAGES cuando el Selector de fotos esté disponible, y Intent.ACTION_OPEN_DOCUMENT cuando no lo esté.
  • Se integró el OnBackInvokedCallback en Android 13 en el OnBackPressedDispatchers proporcionado por ComponentActivity y ComponentDialog. Esto garantiza que todas las APIs que se compilan en OnBackPressedDispatcher 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 registra OnBackInvokedCallback con PRIORITY_DEFAULT en lugar de PRIORITY_OVERLAY (I3901f).
  • Ahora siempre se enviarán las dos devoluciones de llamada de onMultiWindowModeChanged() a las clases que extiendan ComponentActivity. (Ic4d85).
  • ActivityResultRegistry ya no mostrará un resultado a ActivityResultCallback cuando la llamada de launch arroje cualquier Exception y se haya registrado la devolución de llamada sin un LifecycleOwner (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

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 generan ClassVerificationError si se usan versiones de SDK anteriores a la 33 (Ic32e1).
  • Las clases que anulan onPictureInPictureModeChanged() de ComponentActivity 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 y startIntentSenderForResult se marcaron como obsoletos en ComponentActivity con @NonNull porque pasar null siempre provocó una falla (Id2a25, b/231476082).

Correcciones de errores

  • Desde Activity 1.5.1: ActivityResultRegistry ya no mostrará un resultado a la ActivityResultCallback cuando la llamada launch arroje cualquier Exception y la devolución de llamada se registró sin un LifecycleOwner (Ia7ff7, b/238350794).
  • Desde Activity 1.5.1: ComponentActivity ahora enviará correctamente las llamadas del menú a las anulaciones onPrepareOptionMenu(), onCreateOptionsMenu() y onOptionsItemSelected() sin necesidad de llamar a la superfunción (Ie33c5, b/238057118).

Actualización de dependencia

  • Desde Activity 1.5.1: La biblioteca Activity ahora depende de la versión 2.5.1 de Lifecycle (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 con ACTION_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 el OnBackPressedDispatcher que brinda ComponentDialog. Esto garantiza que todas las APIs que se compilan en OnBackPressedDispatcher 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 y ActivityResultContracts.PickMultipleVisualMedia para proporcionar un contrato retrocompatible que use MediaStore.ACTION_PICK_IMAGES cuando el Selector de fotos esté disponible, y Intent.ACTION_OPEN_DOCUMENT cuando no lo esté.
  • Se integró OnBackInvokedCallback en la versión Dev Beta 1 de Android 13 en el OnBackPressedDispatcher que brinda ComponentActivity. Esto garantiza que todas las APIs que se compilan en OnBackPressedDispatcher 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 para ActivityResultCallback cuando la llamada launch() arroje cualquier Exception y se haya registrado la devolución de llamada sin un LifecycleOwner (Ia7ff7, b/238350794).

  • Ahora, ComponentActivity enviará correctamente las llamadas al menú a las anulaciones onPrepareOptionMenu(), onCreateOptionsMenu() y onOptionsItemSelected() sin necesidad de llamar a la superfunción (Ie33c5, b/238057118).

Actualización de dependencia

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 de Dialog que incluye un OnBackPressedDispatcher 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 el ViewTreeOnBackPressedDispatcherOwner, lo que permite que las vistas recuperen de manera genérica el despachador correcto cuando se encuentra en ComponentActivity o ComponentDialog.
  • 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 llamada Activity. Estas interfaces incluyen las siguientes: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider y OnMultiWindowModeChangedProvider.
  • Integración de CreationExtras: ComponentActivity ahora puede proporcionar un ViewModelProvider.Factory sin estado a través del CreationExtras de Lifecycle 2.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 solicite Intent.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

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() de ComponentActivity ahora también llama al onPanelClosed() superpuesto, lo que soluciona el problema por el que no se llamaba al método onContextMenuClosed (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 de CreationExtras, incluso cuando se inicializó con un SavedStateRegistryOwner. 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ón by 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 interfaz OnPictureInPictureModeChangedProvider para permitir que cualquier componente reciba eventos de cambio del modo de pantalla en pantalla (I9f567).
  • ComponentActivity ahora implementa la interfaz OnMultiWindowModeChangedProvider 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 Lifecycle 2.5.0-alpha01. (Ie7e00, b/207012584)
  • Se agregó ComponentDialog, una subclase de Dialog que incluye un OnBackPressedDispatcher 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 el ViewTreeOnBackPressedDispatcherOwner, lo que permite que las vistas recuperen de manera genérica el despachador correcto cuando se encuentra en ComponentActivity o ComponentDialog. (I8a1bc)
  • ComponentActivity ahora implementa la nueva interfaz OnNewIntentProvider para permitir que cualquier componente reciba estos eventos. (If1f8b)
  • ComponentActivity ahora implementa la nueva interfaz OnConfigurationChangedProvider para permitir que cualquier componente reciba estos eventos. (If623b)
  • ComponentActivity ahora implementa la nueva interfaz OnTrimMemoryProvider 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 solicite Intent.ACTION_CREATE_DOCUMENT. (I2bec6)
  • El OnBackPressedDispatcherOwner asociado con View ahora se puede recuperar a través de ViewTreeOnBackPressedDispatcherOwner, en lugar de depender de la transmisión de Context. (I74685)

Correcciones de errores

  • Se solucionó una falla que se producía cuandos se accedía a ViewModel por primera vez desde registerForActivityResult() o desde las devoluciones de llamada a LifecycleObserver que se agregaron como parte de init de ComponentActivity. (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 interfaz MenuHost. Esto permite que cualquier componente agregue elementos de menú a ActionBar mediante una instancia de MenuProvider a la actividad. De manera opcional, se puede agregar cada MenuProvider con un Lifecycle que controlará automáticamente la visibilidad de esos elementos del menú en función del estado de Lifecycle y controlará la eliminación del MenuProvider cuando Lifecycle 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 para ActivityResultCallback cuando la llamada launch arroje cualquier Exception. (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 y ActivityResultContracts.GetMultipleContents que hacía que se usara un tipo de salida de List<? 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 y ActivityResultContracts.RequestMultiplePermissions cuando se usa Kotlin mediante sus objetos Companion 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 y onRequestPermissionsResult, 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 lint LaunchDuringComposition que impide llamar al método launch de ActivityResultLauncher 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 interfaz MenuHost. Esto permite que cualquier componente agregue elementos de menú a ActionBar mediante una instancia de MenuProvider a la actividad. De manera opcional, se puede agregar cada MenuProvider con un Lifecycle que controlará automáticamente la visibilidad de esos elementos del menú en función del estado de Lifecycle y controlará la eliminación del MenuProvider cuando Lifecycle 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á un IllegalStateException cuando se intente llamar a launch() en un elemento ActivityResultLauncher 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ón setContent para alojar la IU de Jetpack Compose en una actividad y los wrappers específicos de Compose para interactuar con las API de ComponentActivity 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 de CaptureVideo reemplaza el contrato TakeVideo 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ón trackPipAnimationHintView en Activity a fin de volver a compilar PictureInPictureParams 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. Usa rememberLauncherForActivityResult(). (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 tu ActivityResultCallback, que indica si tu video se guardó correctamente en el URI dado. Esto reemplaza al contrato TakeVideo 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ón unregister(). El registro y la cancelación del registro del selector se gestionan automáticamente a través de rememberLauncherForActivityResult. (I2443e)

Compatibilidad con Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 solo es compatible con Compose 1.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 que ActivityResultLauncher, 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 usar 1.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() a rememberLauncherForActivityResult() a fin de indicar mejor que el ActivityResultLauncher que se muestra es un objeto administrado que se recuerda por ti. Ahora, si intentas llamar a unregister, el ActivityResultLauncher que se muestra arrojará un error. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.current y LocalActivityResultRegistryOwner.current ahora muestran un valor anulable para determinar mejor si están disponibles en la composición actual. Las API que requieren esas API, como BackHandler y rememberLauncherForActivityResult(), respectivamente, ahora mostrarán un error más descriptivo si no se encuentra el propietario subyacente. Ahora NavHost funciona incluso cuando no se encuentra un OnBackPressedDispatcherOwner, por ejemplo, cuando se obtiene una vista previa de NavHost. (I7d8b4)

Correcciones de errores

  • El objeto BackHandler interceptará correctamente la pulsación del botón Atrás cuando la actividad sea STOPPED 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ón launch() con un ActivityResultContract personalizado que tiene una entrada de Unit. (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 un ClassNotFoundException cuando se inicia un Intent desde un ActivityResultContract que se retenía como elemento adicional en otro Intent. (Ieff05, b/182906230)

Actualizaciones de dependencias

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 solicitudes launch() en curso muestren sus resultados incluso si usas unregister() y luego register() 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 de onBack 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ón provides que se puede usar con CompositionLocalProvider y reemplaza la API asProvidableCompositionLocal(). (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ón NoSuchMethodError: No static method setContent cuando se usaba Compose 1.0.0-alpha12. Todos los usuarios de Compose deben depender de 1.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 de androidx.activity.
    • ComponentActivity.setContent se trasladó de androidx.compose.ui.platform.setContent a androidx.activity.compose.setContent. (Icf416)

Errores conocidos

  • Usar Activity Compose 1.3.0-alpha01 y las bibliotecas que dependen de él, como androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, generarán una excepción NoSuchMethodError: 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

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ón launch() con un ActivityResultContract personalizado que tiene una entrada de Unit. (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 evita ClassNotFoundException cuando se lanza el elemento Intent desde ActivityResultContract que se retenía como un elemento adicional en otro Intent. (Ieff05, b/182906230)

Actualizaciones de dependencias

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 solicitudes launch() en curso muestren sus resultados incluso si usas unregister(), y luego register() 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 un ActivityResultRegistry que te permite controlar startActivityForResult() y onActivityResult(), además de flujos requestPermissions()+onRequestPermissionsResult(), sin anular los métodos de tu Activity o Fragment. Además, proporciona un tipo de seguridad mejorado mediante ActivityResultContract y hooks para probar estos flujos. Consulta la información actualizada en Cómo obtener un resultado de una actividad.
  • ContextAware: ComponentActivity ahora implementa ContextAware, lo que te permite agregar una o más instancias de OnContextAvailableListener para recibir la devolución de llamada antes de la bse Activity.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 de FragmentManager. Los objetos de escucha agregados a las subclases de FragmentActivity 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 de AppCompatActivity se ejecutarán después de ese objeto de escucha.
  • Compatibilidad con ViewTree: ComponentActivity ahora admite las API ViewTreeLifecycleOwner.get(View) ViewTreeViewModelStoreOwner.get(View) y ViewTreeSavedStateRegistryOwner que se agregaron en Lifecycle 2.3.0 y SavedState 1.1.0, de manera que se mostrará Activity como LifecycleOwner, ViewModelStoreOwner y SavedStateRegistryOwner en todas las View que se agreguen directamente a ComponentActivity.

  • reportFullyDrawn() backport: Se brindó portabilidad a versiones anteriores de ComponentActivity del método Activity de reportFullyDrawn() 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 anula reportFullyDrawn(), 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 un Lifecycle. (I109ea)

Contribución externa

  • Se actualizó la documentación de launch() para indicar explícitamente que puede arrojar un ActivityNotFoundException. ¡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 solicitud register(), 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 a unregister() en un ActivityResultLauncher. (b/165608393)

Cambios en el comportamiento

  • El objeto ActivityResultRegistry ahora arroja una excepción IllegalStateException cuando se intenta llamar a register() con un elemento LifecycleOwner cuyo Lifecycle ya alcanzó STARTED. (b/165435866)

Documentación actualizada

  • La documentación de ContextAware se vincula a LifecycleOwner para destacar las devoluciones de llamada de Lifecycle 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 implementa ContextAware, lo que permite que agregues una o más instancias de OnContextAvailableListener, que recibirán una devolución de llamada antes del Activity.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 de FragmentManager. Los objetos de escucha agregados a las subclases de FragmentActivity 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 de AppCompatActivity se ejecutarán después de ese objeto de escucha. (I513da)

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 Fragment 1.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ámetro RequestPermission. (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 a requestCode y intent. (b/157212935)
  • ActivityResultLauncher ahora te permite obtener el objeto ActivityResultContract que se usó para registrar el selector. (b/156875743)

Cambios en la API

  • Cambio rotundo: se cambió el nombre del método invoke() en ActivityResultRegistry a onLaunch(). (b/157496491)
  • El contrato OpenMultipleDocuments ahora muestra una lista vacía en lugar de null 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

Cambios en la API

  • Ahora, el contrato del objeto TakePicture muestra un elemento boolean que indica el éxito en lugar de una miniatura del objeto Bitmap, ya que las apps de cámara casi nunca la admitían cuando se escribía la imagen al elemento Uri proporcionado. (b/154302879)
  • Se quitaron las extensiones invoke() en el objeto ActivityResultLauncher para usar, de manera explícita, la extensión launch() a fin de indicar mejor que son operaciones asíncronas. Se agregaron extensiones de Kotlin para el objeto launch al paquete androidx.activity.result de los elementos ActivityResultLauncher<Void> y ActivityResultLauncher<Unit>, que quitan la necesidad de pasar los objetos null o Unit, respectivamente, lo que duplica ese comportamiento de las extensiones invoke() anteriores. (aosp/1304674, aosp/1304675)
  • Los métodos IntentSenderRequest.Builder para los objetos setFlagsMask() y setFlagsValues() se combinaron en un solo método setFlags(). (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 objeto ActivityResultCallback con un elemento LifecycleOwner. (aosp/1309744

Cambios en el comportamiento

  • Ahora, el objeto ActivityResultRegistry genera códigos de solicitud a partir del elemento 0xFFFF en lugar del elemento 0, lo que evita la superposición cuando se usan los objetos startActivityForResult() o requestPermissions() 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() a registerForActivityResult(), tanto en ComponentActivity aquí como en el objeto Fragment 1.3.0-alpha04. (aosp/1278717)
  • Los contratos GetContents, OpenDocuments y RequestPermissions se renombraron como GetMultipleContents, OpenMultipleDocuments y RequestMultiplePermissions, respectivamente. (aosp/1280161)
  • ComponentActivity ahora implementa la interfaz ActivityResultRegisteryOwner. (aosp/1290888)
  • Las API startActivityForResult()/onActivityResult() y onRequestPermissionsResult() de ComponentActivity se dieron de baja. Usa las API de Activity Result. (b/154751887)

Correcciones de errores

  • Al usar los contratos GetMultipleContents y OpenMultipleDocuments, 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 y CreateDocument al conjunto de contratos previamente compilados proporcionados por ActivityResultContracts. (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 entrada Uri en la que se debe almacenar la imagen. Se cambió el nombre del contrato anterior que no acepta ninguna entrada a TakePicturePreview. (aosp/1262482)
  • Se cambió el nombre del método registerActivityResultCallback() de ActivityResultRegistry a register(). (aosp/1267621)
  • Se cambió el nombre del método dispose() de ActivityResultLauncher a unregister() y se quitó unregisterResultCallback() de ActivityResultRegistry. (aosp/1267621)
  • El método createIntent() de ActivityResultContact ahora lleva un Context además de la entrada para que sea posible crear intents explícitos. (aosp/1238800)
  • Un contrato ActivityResultContract ahora puede omitir getSynchronousResult() para entregar un resultado sin llamar a startActivityForResult. Los contratos RequestPermission y RequestPermissions 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 ese Intent no se debe usar con startActivityForResult(). (aosp/1266916)
  • Muchas de las API de Activity Result que no se deben extender ahora son final. Esto incluye getActivityResultRegistry(), los métodos prepareCall(), todos los métodos de ActivityResultRegistry excepto invoke() y una cantidad de contratos predeterminados que no admiten opciones adicionales. (b/152439361)

Correcciones de errores

  • Se corrigió una excepción NullPointerException en ActivityResultRegistry 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 un ActivityResultRegistry que te permite controlar los flujos startActivityForResult()+onActivityResult() y requestPermissions()+onRequestPermissionsResult() sin anular métodos en Activity ni Fragment, aumenta la seguridad de tipo mediante ActivityResultContract 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 Lifecycle 2.3.0-alpha01, de manera que mostrará Activity como LifecycleOwner 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 que onBackPressed() ocasionaba un IllegalStateException debido a un error en android.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 usa by viewModels(), el constructor ViewModelProvider o un objeto ViewModelProviders.of() con un ComponentActivity 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 SavedState 1.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

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 usa by viewModels(), el constructor ViewModelProvider o un objeto ViewModelProviders.of() con un ComponentActivity. (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 Lifecycle 2.2.0-alpha02. (aosp/1007817)
  • activity-ktx agregó una dependencia en lifecycle-runtime-ktx; ya no debes agregarlo de forma explícita a tus dependencias cuando usas activity-ktx o bibliotecas que dependen de activity-ktx (como fragment-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 para FragmentActivity en Fragment 1.1.0 y, por extensión, AppCompatActivity en AppCompat 1.1.0.
  • activity-ktx: El módulo activity-ktx incluye una extensión de propiedad Kotlin by viewModels para acceder a objetos ViewModel. Este módulo se incluye automáticamente cuando agregas fragment-ktx desde Fragment 1.1.0.
  • OnBackPressedDispatcher: Como alternativa que admite composición a la anulación onBackPressed(), ahora puedes registrar un OnBackPressedCallback desde cualquier LifecycleOwner (como un fragmento) para interceptar eventos del botón Atrás del sistema. Se agregó un función lambda con la versión del receptor addCallback a activity-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 de getLastCustomNonConfigurationInstance() 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 cualquier ViewModelStoreOwner que aclare la propiedad de los objetos retenidos y proporcione una devolución de llamada onCleared() 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 y removeOnBackPressedCallback que se habían dado de baja en ComponentActivity. aosp/953857
  • Los métodos setEnabled() y isEnabled() de OnBackPressedCallback ahora son finales. b/131416833
  • El método remove() de OnBackPressedCallback ahora es final. aosp/952720
  • OnBackPressedDispatcher ahora tiene constructores públicos, lo que te permite construir tus propias instancias para pruebas, etc. aosp/953431
  • onBackPressed() para ComponentActivity ahora está marcado explícitamente como @MainThread. aosp/952721

Correcciones de errores

  • Se corrigió un error ConcurrentModificationException cuando se llama a remove() desde el método handleOnBackPressed() de un objeto OnBackPressedCalback que se agregaba con un elemento LifecycleOwner. 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 y OnBackPressedDispatcher se marcaron como @MainThread. (aosp/943813)
  • El método handleOnBackPressed() ya no muestra un valor boolean. En cambio, OnBackPressedCallback ahora es una clase abstracta que se puede habilitar o deshabilitar; solo cuando el nuevo método isEnabled() muestre un verdadero se llamará a handleOnBackPressed(), en el que deberás procesar el botón Atrás. (aosp/944518)
  • Los métodos addCallback de OnBackPressedDispatcher ya no muestran una instancia Cancellable. OnBackPressedCallback ahora contiene un método remove() que cumple con esta funcionalidad, lo que te permite llamar a remove() durante handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • activity-ktx ahora contiene una devolución de llamada con alcance de receptor para addCallback que acepta una función lamdba que implementa handleOnBackPressed() y tiene acceso a isEnabled y remove(). (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 objeto OnBackPressedDispatcher, que se puede recuperar a través de getOnBackPressedDispatcher(). (aosp/922523)
  • Los métodos para agregar una nueva devolución de llamada OnBackPressedCallback al OnBackPressedDispatcher ahora muestran un objeto Cancellable, lo que permite quitar la devolución de llamada sin solicitar una referencia explícita al objeto OnBackPressedDispatcher. (aosp/922523)
  • Ahora, cuando se agrega un objeto OnBackPressedCallback con un LifecycleOwner asociado, se agrega y se quita OnBackPressedCallback 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 utilizar setContentView(). (aosp/837619)

Cambios en la API

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ódulo activity-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

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 de addOnBackPressedCallback para recibir devoluciones de llamada de onBackPressed() sin necesidad de anular el método en tu actividad.
  • Se agregó un nuevo delegado de propiedades de by viewModels() de Kotlin para recuperar objetos ViewModel de un ComponentActivity.
  • Los eventos de entrada pendientes (como los clics) ahora se cancelan en onStop().

Cambios en la API

  • La implementación de LifecycleOwner y ViewModelStoreOwner se transfirió de FragmentActivity a ComponentActivity.
  • Se dio de baja el elemento onRetainCustomNonConfigurationInstance. Usa un ViewModel para almacenar objetos que deban permanecer vigentes frente a los cambios de configuración.