Atividade

Acesse APIs compostas baseadas em Activity.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
13 de novembro de 2024 1.9.3 - 1.10.0-beta01 -

Declarar dependências

Para adicionar uma dependência de atividade, adicione o repositório Maven do Google ao projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou 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 mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.10

Versão 1.10.0-beta01

13 de novembro de 2024

Lançamento de androidx.activity:activity:1.10.0-beta01, androidx.activity:activity-compose:1.10.0-beta01 e androidx.activity:activity-ktx:1.10.0-beta01 sem mudanças desde a última versão Alfa. A versão 1.10.0-beta01 contém estas confirmações.

Versão 1.10.0-alpha03

30 de outubro de 2024

Lançamento de androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03 e androidx.activity:activity-ktx:1.10.0-alpha03. A versão 1.10.0-alpha03 contém estas confirmações.

Mudanças na API

  • Adição de um novo local de composição LocalActivity que fornece o Activity para o escopo atual, eliminando a necessidade de os desenvolvedores acessarem um Activity do LocalContext Ele também vem com uma nova regra de lint que verifica quando o LocalContext está sendo convertido incorretamente em um Activity. (I7746a, b/283009666).

Correções de bugs

  • Na Activity 1.9.3: o PredictiveBackHandler não vai mais acionar o callback depois que o gerenciador for desativado. Isso corrige um problema em que a NavHost do Navigation Compose gerava uma IndexOutOfBoundsException (I3f75e, b/365027664, b/340202286).

Atualização de dependências

  • O Compose de atividades agora depende do Compose Runtime 1.7.0 (I7746a, b/283009666).

Versão 1.10.0-alpha02

4 de setembro de 2024

Lançamento de androidx.activity:activity:1.10.0-alpha02, androidx.activity:activity-compose:1.10.0-alpha02 e androidx.activity:activity-ktx:1.10.0-alpha02. A versão 1.10.0-alpha02 contém estas confirmações.

Mudanças de comportamento

  • Os contratos de resultado da atividade PickVisualMedia e PickMultipleVisualMedia que acionam o seletor de fotos não delegam mais diretamente ao Google Play Services se o seletor de fotos do sistema não estiver disponível, mas usam a ação pública ACTION_SYSTEM_FALLBACK_PICK_IMAGES e os extras relacionados para oferecer uma experiência consistente do seletor de fotos aos OEMs e apps do sistema como substituto. Isso não afeta a experiência do usuário em dispositivos com uma versão recente do Google Play Services. (I3513d).

Correções de bugs

  • O contorno manual de acesso a novas APIs da plataforma foi removido, já que isso acontece automaticamente pelo modelagem de API ao usar o R8 com o AGP 7.3 ou mais recente (por exemplo, o R8 versão 3.3) e para todos os builds ao usar o AGP 8.1 ou mais recente (por exemplo, o D8 versão 8.1). Os clientes que não estão usando o AGP precisam fazer upgrade para a versão 8.1 ou mais recente do D8. Veja mais detalhes neste artigo. (I9496c, b/345472586).
  • Da Activity 1.9.2: foi corrigido um problema em que a API PredictiveBackHandler do Activity Compose continuava processando o gesto de voltar do sistema no frame em que ele foi desativado. Isso poderia fazer com que bibliotecas como o Navigation Compose processassem o retorno mesmo com uma backstack vazia, resultando em um IndexOutOfBoundsException. (Ie3301, b/340202286).
  • Na Atividade 1.9.1: foi corrigido um problema com PredictiveBackHandler em que, depois de fazer a restauração do sistema, a tentativa de fazer onBackPressed do OnBackPressedDispatcher falhava (I5f1f8).

Versão 1.10.0-alpha01

26 de junho de 2024

Lançamento de androidx.activity:activity:1.10.0-alpha01, androidx.activity:activity-compose:1.10.0-alpha01 e androidx.activity:activity-ktx:1.10.0-alpha01. Esta versão foi desenvolvida em uma ramificação interna.

Novos recursos

  • Adição de suporte a novos recursos PhotoPicker introduzidos no Android V, incluindo a capacidade de escolher imagens em ordem e escolher qual guia (álbuns ou imagens) deve ficar visível inicialmente.

Versão 1.9

Versão 1.9.3

16 de outubro de 2024

Lançamento de androidx.activity:activity:1.9.3, androidx.activity:activity-compose:1.9.3 e androidx.activity:activity-ktx:1.9.3. A versão 1.9.3 contém estas confirmações.

Correções de bugs

  • O PredictiveBackHandler não vai mais acionar o callback depois que o gerenciador for desativado. Isso corrige um problema em que a NavHost do Navigation Compose gerava uma IndexOutOfBoundsException (I3f75e, b/340202286).

Versão 1.9.2

4 de setembro de 2024

Lançamento de androidx.activity:activity:1.9.2, androidx.activity:activity-compose:1.9.2 e androidx.activity:activity-ktx:1.9.2. A versão 1.9.2 contém estas confirmações.

Correções de bugs

  • Correção de um problema em que a API PredictiveBackHandler do Activity Compose continuava processando o gesto de voltar do sistema no frame em que ele foi desativado. Isso poderia fazer com que bibliotecas como o Navigation Compose processassem o retorno mesmo com uma backstack vazia, resultando em um IndexOutOfBoundsException. (Ie3301, b/340202286).

Versão 1.9.1

24 de julho de 2024

Lançamento de androidx.activity:activity:1.9.1, androidx.activity:activity-compose:1.9.1 e androidx.activity:activity-ktx:1.9.1. A versão 1.9.1 contém estas confirmações.

Correções de bugs

  • Correção de um problema com PredictiveBackHandler em que, depois de fazer a restauração do sistema, a tentativa de fazer onBackPressed do OnBackPressedDispatcher falhava (I5f1f8).

Versão 1.9.0

17 de abril de 2024

Lançamento de androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0 e androidx.activity:activity-ktx:1.9.0. A versão 1.9.0 contém estas confirmações.

Mudanças importantes desde a versão 1.8.0

  • A ComponentActivity agora implementa OnUserLeaveHintProvider para permitir que os componentes sejam chamados de volta para eventos onUserLeaveHint.
  • As APIs OnBackPressedCallback, BackHandler e PredictiveBackHandler agora alertam ao chamar onBackPressedDispatcher.onBackPressed() ao processar a volta, o que sempre interrompe a animação de volta preditiva. Consulte o guia de práticas recomendadas para mais detalhes.
  • O restante das APIs Activity foi reescrito em Kotlin, e todas as extensões disponíveis anteriormente em activity-ktx foram movidas para activity. activity-ktx está completamente vazio.
    • Como parte da conversão de ActivityResultLauncher para Kotlin, o método getContract agora é uma propriedade abstrata do Kotlin. Essa é uma mudança compatível com binários, mas que interrompe a origem se a implementação de ActivityResultLauncher for escrita em Kotlin.

Versão 1.9.0-rc01

3 de abril de 2024

Lançamento de androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01 e androidx.activity:activity-ktx:1.9.0-rc01. A versão 1.9.0-rc01 contém estas confirmações.

Atualização de dependências

Versão 1.9.0-beta01

20 de março de 2024

Lançamento de androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01 e androidx.activity:activity-ktx:1.9.0-beta01. A versão 1.9.0-beta01 contém estas confirmações.

Correções de bugs

  • Foi corrigida uma regressão de desempenho de inicialização de atividades introduzida na 1.9.0-alpha02 da atividade causada pela chamada de OnBackPressedDispatcher como parte da criação da atividade. (Ie75e3).

Versão 1.9.0-alpha03

7 de fevereiro de 2024

Lançamento de androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03 e androidx.activity:activity-ktx:1.9.0-alpha03. A versão 1.9.0-alpha03 contém estas confirmações.

Aviso do lint

Correções de bugs

  • Se um evento de volta for enviado pelo sistema iniciado durante um gesto de volta preditivo já em execução, o gesto de volta preditivo em execução será cancelado, e o novo evento de volta assumirá o controle para iniciar um novo gesto de volta preditivo. (I3482e).
  • Uma falha ao acessar o onBackPressedDispatcher de um ComponentActivity pela primeira vez em uma linha de execução em segundo plano foi corrigida. Agora é seguro acessar o onBackPressedDispatcher em qualquer linha de execução. (I79955).

Versão 1.9.0-alpha02

24 de janeiro de 2024

Lançamento de androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02 e androidx.activity:activity-ktx:1.9.0-alpha02. A versão 1.9.0-alpha02 contém estas confirmações.

Conversões para Kotlin

  • O ActivityResultRegistry foi reescrito em Kotlin. Isso garante que a nulidade dos genéricos no contrato transmitido para register seja transmitida corretamente para o ActivityResultLauncher retornado a você. (I121f0).
  • O ActivityResult foi reescrito em Kotlin. As extensões Kotlin ActivityResult que oferecem suporte à desestruturação nos campos resultCode e data foram movidas de activity-ktx para activity. (I0565a).
  • As extensões Kotlin de by viewModels() para ComponentActivity e trackPipAnimationHintView foram movidas de activity-ktx para activity. O artefato activity-ktx agora está completamente vazio. (I0a444).

Correções de bugs

  • A API enableEdgeToEdge agora desenha em torno de todos os cortes de tela. (a3644b, b/311173461).
  • Da Activity 1.8.2: foi corrigido o extra transmitido para o ACTION_SYSTEM_FALLBACK_PICK_IMAGES do contrato da atividade do seletor de fotos para transmitir corretamente a chave EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, em vez de usar o extra com a chave "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Se você é um OEM que implementa um seletor de fotos padrão do sistema, é altamente recomendável oferecer suporte aos dois extras para garantir a maior compatibilidade. (I96a00).

Versão 1.9.0-alpha01

29 de novembro de 2023

Lançamento de androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01 e androidx.activity:activity-ktx:1.9.0-alpha01. A versão 1.9.0-alpha01 contém estas confirmações.

Novos recursos

  • A ComponentActivity agora implementa OnUserLeaveHintProvider para permitir que os componentes sejam chamados de volta para eventos onUserLeaveHint. (I54892).

Mudanças na API

  • O ComponentActivity foi reescrito em Kotlin. (I14f31).
  • O ActivityResultCaller foi reescrito em Kotlin. (Ib02e4).
  • O ActivityResultLauncher foi reescrito em Kotlin. Como parte dessa conversão, o método getContract agora é uma propriedade abstrata do Kotlin. Essa é uma mudança compatível com binários, mas que interrompe a origem se a implementação de ActivityResultLauncher for escrita em Kotlin. (Id4615).
  • O PickVisualMediaRequest agora tem o mesmo nível mínimo de 19 da API, assim como o contrato de resultado de atividade PickVisualMedia. (Id6e21).

Atualização de dependências

Versão 1.8

Versão 1.8.2

13 de dezembro de 2023

Lançamento de androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2 e androidx.activity:activity-ktx:1.8.2. A versão 1.8.2 contém estas confirmações.

Correções de bugs

  • Correção do extra transmitido para o ACTION_SYSTEM_FALLBACK_PICK_IMAGES do contrato de atividade do seletor de fotos para transmitir corretamente a chave EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, em vez de usar o extra com a chave "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Se você é um OEM que implementa um seletor de fotos padrão do sistema, é altamente recomendável oferecer suporte aos dois extras para garantir a maior compatibilidade. (I96a00).

Versão 1.8.1

15 de novembro de 2023

Lançamento de androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1 e androidx.activity:activity-ktx:1.8.1. A versão 1.8.1 contém estas confirmações.

Correções de bugs

  • O OnBackPressedDispatcher agora continua sendo enviado para o OnBackPressedCallback correto, mesmo depois que uma nova OnBackPressedCallback é adicionada enquanto o gesto de volta está sendo processado. (Id0ff6).

Versão 1.8.0

4 de outubro de 2023

Lançamento de androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0 e androidx.activity:activity-ktx:1.8.0. A versão 1.8.0 contém estas confirmações.

Mudanças importantes desde a versão 1.7.0

  • Volta preditiva: o OnBackPressedCallback agora oferece novos callbacks de volta preditiva para processar o início do gesto de volta, o progresso ao longo do gesto e o cancelamento dele, além do callback handleOnBackPressed() anterior para quando o gesto de volta for confirmado. Isso também vem com o elemento combinável PredictiveBackHandler para processar eventos de gesto de volta preditivo no Compose de atividade. Ele fornece um fluxo de objetos BackEventCompat que precisam ser coletados na suspensão lambda fornecida:
  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
    }
  }

O ComponentActivity.onBackPressed() foi descontinuado e substituído pelas APIs para processamento de retorno. Os desenvolvedores agora precisam usar o OnBackPressedDispatcher em vez de substituir esse método.

  • EdgeToEdge: ComponentActivity.enableEdgeToEdge() foi adicionado para configurar facilmente a tela de ponta a ponta de forma compatível com versões anteriores.

Versão 1.8.0-rc01

20 de setembro de 2023

Lançamento de androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01 e androidx.activity:activity-ktx:1.8.0-rc01. A versão 1.8.0-rc01 contém estas confirmações.

Versão 1.8.0-beta01

6 de setembro de 2023

Lançamento de androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01 e androidx.activity:activity-ktx:1.8.0-beta01. A versão 1.8.0-beta01 contém estas confirmações.

Melhoria na documentação

  • Melhoramos a documentação de BackEventCompat. (aosp/2722254).

Versão 1.8.0-alpha07

23 de agosto de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07 e androidx.activity:activity-ktx:1.8.0-alpha07. A versão 1.8.0-alpha07 contém estas confirmações.

Novos recursos

  • O Compose de atividades adicionou um novo elemento combinável PredictiveBackHandler para processar eventos de gesto de volta preditiva. Ele fornece um Flow de objetos BackEventCompat que precisam ser coletados na suspensão lambda fornecida:

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

    Ele também vem com um aviso de tempo de compilação pela regra de lint para garantir que as chamadas Flow chamem collect(). (Id2773, b/294884345).

  • O onBackPressedDispatcher em ComponentActivity agora é inicializado de forma lenta para ser criado apenas quando necessário. (I0bf8e).

Correções de bugs

  • ComponentActivity não vai mais mostrar um NPE no Android 13 quando receber um callback onBackPressed() e a atividade já tiver sido DESTROYED. (Idb055, b/291869278).
  • Remoção de usos da API experimental isAtLeastU() (Ie9117, b/289269026).

Versão 1.8.0-alpha06

21 de junho de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06 e androidx.activity:activity-ktx:1.8.0-alpha06. A versão 1.8.0-alpha06 contém estas confirmações.

Novos recursos

  • O OnBackPressedDispatcher agora cancela corretamente todos os callbacks que são removidos durante um gesto de volta preditiva. (I3f90f).

Mudanças na API

  • Ao transmitir SystemBarStyle.auto para a API enableEdgeToEdge, agora é possível substituir o parâmetro lambda detectDarkMode para fornecer uma lógica personalizada de detecção do modo noturno. (aosp/2546393, b/278263793).

Versão 1.8.0-alpha05

7 de junho de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05 e androidx.activity:activity-ktx:1.8.0-alpha05. Esta versão foi desenvolvida em uma ramificação interna.

Mudanças na API

  • Agora, a atividade oferece uma classe BackEventCompat que serve como uma versão compatível com versões anteriores de BackEvent que é desassociada da classe BackEvent do framework.
  • Mudança interruptiva:os métodos handleOnBackStarted e handleOnBackProgressed do OnBackPressedCallback agora recebem uma instância de androidx.activity.BackEventCompat em vez de uma classe android.window.BackEvent do framework. As APIs @VisibleForTesting equivalentes em OnBackPressedDispatcher também foram atualizadas.
  • O construtor de OnBackPressedDispatcher agora recebe uma instância opcional de Consumer<Boolean>, que permite que os proprietários do gerenciador recebam um callback sempre que o número de callbacks ativados muda de zero para um valor diferente de zero ou vice-versa.

Correções de bugs

Versão 1.8.0-alpha04

10 de maio de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04 e androidx.activity:activity-ktx:1.8.0-alpha04. O lançamento foi feito em uma ramificação interna.

Correções de bugs

Versão 1.8.0-alpha03

12 de abril de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03 e androidx.activity:activity-ktx:1.8.0-alpha03. O lançamento foi feito em uma ramificação interna.

Novos recursos

  • Adicionado ComponentActivity.setUpEdgeToEdge() para configurar facilmente a tela de ponta a ponta de forma compatível com versões anteriores.

Mudanças na API

  • O ComponentActivity.onBackPressed() foi descontinuado e substituído pelas APIs para processamento de retorno. Os desenvolvedores agora precisam usar o OnBackPressedDispatcher em vez de substituir esse método. (Ibce2f, b/271596918).
  • ComponentDialog e ComponentActivity agora contêm a API pública initViewTreeOwners() para ser usada na inicialização de todos os proprietários da árvore de visualização antes de definir a visualização de conteúdo. (Ibdce0, b/261314581).

Correções de bugs

  • Correção de um problema em que os fragmentos invalidavam incorretamente os hosts de menu e faziam com que outros menus na atividade tivessem um comportamento inesperado. (I9404e, b/244336571).

Outras mudanças

  • O ActivityResultRegister agora usa o Random do Kotlin em vez do Java. (I4d98f, b/272096025).

Versão 1.8.0-alpha02

8 de março de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02 e androidx.activity:activity-ktx:1.8.0-alpha02. Desenvolvido em uma ramificação interna.

Atualização de dependências

Versão 1.8.0-alpha01

8 de fevereiro de 2023

Lançamento de androidx.activity:activity:1.8.0-alpha01, androidx.activity:activity-compose:1.8.0-alpha01 e androidx.activity:activity-ktx:1.8.0-alpha01. Isso foi criado em uma ramificação interna.

Novos recursos

  • A classe OnBackPressedCallback agora contém novos callbacks de progresso de volta preditiva para processar o início do gesto de volta, o progresso ao longo do gesto e o cancelamento dele, além do callback handleOnBackPressed() anterior para quando o gesto de volta for confirmado.

Versão 1.7

Versão 1.7.2

24 de maio de 2023

Lançamento de androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2 e androidx.activity:activity-ktx:1.7.2. A versão 1.7.2 contém estas confirmações.

Correções de bugs

  • Correção de falhas da ReportDrawn ao sair de uma tela antes que a report seja chamada (Ic46f1, b/260506820).

Versão 1.7.1

19 de abril de 2023

Lançamento de androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1 e androidx.activity:activity-ktx:1.7.1. A versão 1.7.1 contém estas confirmações.

Correções de bugs

  • O ReportFullyDrawExecuter não vaza mais ao usar ComponentActivity com ActivityScenario. (Id2ff2, b/277434271).

Versão 1.7.0

22 de março de 2023

Lançamento de androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0 e androidx.activity:activity-ktx:1.7.0. A versão 1.7.0 contém estas confirmações.

Mudanças importantes desde a versão 1.6.0

  • Os contratos de atividade do seletor de fotos em PickVisualMedia e PickMultipleVisualMedia foram atualizados para conter um substituto adicional para quando MediaStore.ACTION_PICK_IMAGES não estiver disponível, permitindo que OEMs e apps do sistema, como o Google Play Services, ofereçam uma experiência consistente do seletor de fotos em uma variedade maior de dispositivos Android e níveis de API ao implementar a ação substituta. O seletor de fotos vai usar esse substituto se ele estiver disponível antes de usar Intent.ACTION_OPEN_DOCUMENT, que continua sendo compatível com todos os dispositivos com a API 19 e versões mais recentes.
  • Agora, ComponentDialog implementa SavedStateRegistryOwner, tem acesso ao próprio SavedStateRegistry e define o SavedStateRegistryOwner para a ViewTree. Agora é possível usar o Jetpack Compose em uma ComponentDialog, já que ela atende ao LifecycleOwner e SavedStateRegistryOwner anexados à janela usando os requisitos das APIs ViewTree.
  • IntentSenderRequest.Builder.setFlags() agora permite definir várias sinalizações de Intent, em vez de apenas uma

Conversão para Kotlin

Várias classes de atividade foram convertidas em Kotlin. Todas as classes convertidas ainda mantêm a compatibilidade binária com versões anteriores. As classes a seguir têm mudanças incompatíveis com a origem para classes escritas em Kotlin: ActivityResultRegistryOwner, OnBackPressedDispatcherOwner.

A tabela abaixo mostra as conversões de origem da nova versão da atividade:

Atividade 1.5 Atividade 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

Essas classes também foram convertidas para Kotlin, mas permanecem compatíveis com a origem: ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest e OnBackPressedDispatcher

APIs FullyDrawnReporter

ComponentActivity agora fornece uma instância de FullyDrawnReporter que permite que vários componentes informem quando estão prontos para interação. O ComponentActivity espera a conclusão de todos os componentes antes de chamar reportFullyDrawn() por você. Essas APIs cuidam dos requisitos de tempo para você e não precisam ser chamadas como parte de uma chamada onDraw.

O uso dessas APIs é incentivado para:

  • sinalizar ao Android Runtime quando a inicialização é concluída para garantir que todo o código executado durante uma sequência de inicialização de vários frames seja incluído e priorizado para compilação em segundo plano;
  • sinalizar à Macrobenchmark e ao Play vitals quando o aplicativo precisa ser considerado totalmente renderizado para métricas de inicialização. Assim, você pode acompanhar a performance.

Três APIs Activity Compose foram adicionadas para facilitar o uso do FullyDrawnReporter em elementos combináveis individuais:

  • ReportDrawn indica que o elemento combinável está pronto para interação.
  • O ReportDrawnWhen usa um predicado (ou seja, list.count > 0) para indicar que o elemento combinável está pronto para interação.
  • O ReportDrawnAfter usa um método de suspensão que, quando concluído, indica que você já pode interagir.

Atualizações de dependência

Versão 1.7.0-rc01

8 de março de 2023

Lançamento de androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01 e androidx.activity:activity-ktx:1.7.0-rc01. A versão 1.7.0-rc01 contém estas confirmações.

Atualização de dependências

Versão 1.7.0-beta02

22 de fevereiro de 2023

Lançamento de androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02 e androidx.activity:activity-ktx:1.7.0-beta02. A versão 1.7.0-beta02 contém estas confirmações.

Mudanças na API

  • Agora, a ação e os extras usados pelos contratos PickVisualMedia e PickMultipleVisualMedia como substitutos para quando MediaStore.ACTION_PICK_IMAGES não está disponível são constantes públicas que oferecem estabilidade de API para OEMs e apps do sistema que querem oferecer uma experiência consistente do seletor de fotos. A implementação desse substituto ainda é limitada a apps do sistema. (Icd320).

Versão 1.7.0-beta01

8 de fevereiro de 2023

Lançamento de androidx.activity:activity:1.7.0-beta01, androidx.activity:activity-compose:1.7.0-beta01 e androidx.activity:activity-ktx:1.7.0-beta01. A versão 1.7.0-beta01 contém estas confirmações.

Novos recursos

  • IntentSenderRequest.Builder.setFlags() agora permite definir várias sinalizações de Intent, em vez de apenas uma (Iac04c).

Correções de bugs

  • O substituto de PickVisualMedia para quando o seletor de fotos do framework não estiver disponível agora limita corretamente o processamento a apps instalados na imagem do sistema do dispositivo (If8ae6).

Conversões para Kotlin

  • Agora, o ActivityResultRegistryOwner é escrito em Kotlin. Essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário substituir a propriedade activityResultRegistry em vez de implementar a função getActivityResultRegistry() anterior (I0b00e).
  • Agora, o OnBackPressedDispatcherOwner é escrito em Kotlin. Essa é uma mudança incompatível com a fonte das classes escritas em Kotlin. Agora é necessário substituir a propriedade onBackPressedDispatcher em vez de implementar a função getOnBackPressedDispatcher anterior (Ia277d).
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest e OnBackPressedDispatcher agora são escritos em Kotlin (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701).

Versão 1.7.0-alpha04

25 de janeiro de 2023

Lançamento de androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04 e androidx.activity:activity-ktx:1.7.0-alpha04. A versão 1.7.0-alpha04 contém estas confirmações.

Novos recursos

  • Os contratos de resultado da atividade PickVisualMedia e PickMultipleVisualMedia agora vão usar um seletor de fotos fornecido pelo Google Play Services, quando disponível nos casos em que o seletor do sistema Android (por exemplo, MediaStore.ACTION_PICK_IMAGES) não está disponível. A API isPhotoPickerAvailable(), que só detecta o seletor de fotos fornecido pelo sistema Android, foi descontinuada. É recomendável usar a nova API isPhotoPickerAvailable(Context), que informa se um dos seletores de fotos está disponível (I55be6).

Versão 1.7.0-alpha03

11 de janeiro de 2023

Lançamento de androidx.activity:activity:1.7.0-alpha03, androidx.activity:activity-compose:1.7.0-alpha03 e androidx.activity:activity-ktx:1.7.0-alpha03. A versão 1.7.0-alpha03 contém estas confirmações.

Novos recursos

  • Agora, ComponentDialog implementa SavedStateRegistryOwner, tem acesso ao próprio SavedStateRegistry e define o SavedStateRegistryOwner para a ViewTree. É possível usar o Jetpack Compose em uma ComponentDialog, já que ela atende ao LifecycleOwner e SavedStateRegistryOwner anexados à janela usando os requisitos das APIs ViewTree (Idca17, I73468 b/261162296).

Mudanças na API

  • Adição de um elemento combinável ReportDrawn, que marca a atividade imediatamente como pronta para chamar reportFullyDrawn (Ic5b14, b/259687964).

Conversões para Kotlin

  • As classes ActvitiyResultCallback e OnBackPressedCallback foram convertidas para Kotlin, mantendo a compatibilidade de origem e binária (Ifc5e5, Ide1b0, b/257291701).

Versão 1.7.0-alpha02

24 de outubro de 2022

Lançamento de androidx.activity:activity:1.7.0-alpha02, androidx.activity:activity-compose:1.7.0-alpha02 e androidx.activity:activity-ktx:1.7.0-alpha02. A versão 1.7.0-alpha02 contém estas confirmações.

Correções de bugs

  • Da Activity 1.6.1: foi corrigido um problema com o contrato da Activity Result de PickMultipleVisualMedia que não era iniciado em dispositivos Android R ao usar o valor padrão de maxItems (Ie2776, b/249182130).

Versão 1.7.0-alpha01

5 de outubro de 2022

Lançamento de androidx.activity:activity:1.7.0-alpha01, androidx.activity:activity-compose:1.7.0-alpha01 e androidx.activity:activity-ktx:1.7.0-alpha01. A versão 1.7.0-alpha01 contém estas confirmações.

APIs FullyDrawnReporter

ComponentActivity agora fornece uma instância de FullyDrawnReporter que permite que vários componentes informem quando estão prontos para interação. O ComponentActivity espera a conclusão de todos os componentes antes de chamar reportFullyDrawn() por você. Essas APIs cuidam dos requisitos de tempo para você e não precisam ser chamadas como parte de uma chamada onDraw.

O uso dessas APIs é incentivado para:

  • sinalizar ao Android Runtime quando a inicialização é concluída para garantir que todo o código executado durante uma sequência de inicialização de vários frames seja incluído e priorizado para compilação em segundo plano;
  • sinalizar à Macrobenchmark e ao Play vitals quando o aplicativo precisa ser considerado totalmente renderizado para métricas de inicialização. Assim, você pode acompanhar a performance.

Duas APIs Activity Compose foram adicionadas para facilitar o uso do FullyDrawnReporter em elementos combináveis individuais:

  • O ReportDrawnWhen usa um predicado (ou seja, list.count > 0) para indicar que o elemento combinável está pronto para interação.
  • O ReportDrawnAfter usa um método de suspensão que, quando concluído, indica que você já pode interagir.

Versão 1.6.1

Versão 1.6.1

24 de outubro de 2022

Lançamento de androidx.activity:activity:1.6.1, androidx.activity:activity-compose:1.6.1 e androidx.activity:activity-ktx:1.6.1. A versão 1.6.1 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema com o contrato da Activity Result PickMultipleVisualMedia que não era iniciado em dispositivos Android R ao usar o valor padrão de maxItems (Ie2776, b/249182130).

Versão 1.6.0

Versão 1.6.0

21 de setembro de 2022

Lançamento de androidx.activity:activity:1.6.0, androidx.activity:activity-compose:1.6.0 e androidx.activity:activity-ktx:1.6.0. A versão 1.6.0 contém estas confirmações.

Mudanças importantes desde a versão 1.5.0

  • Adição de ActivityResultContracts.PickVisualMedia e ActivityResultContracts.PickMultipleVisualMedia para fornecer um contrato compatível com versões anteriores que usa MediaStore.ACTION_PICK_IMAGES quando o seletor de fotos está disponível e Intent.ACTION_OPEN_DOCUMENT quando não está.
  • No Android 13, o OnBackInvokedCallback é integrado ao OnBackPressedDispatchers fornecido pelo ComponentActivity e pelo ComponentDialog. Isso garante que todas as APIs criadas na OnBackPressedDispatcher funcionem ao ativar um gesto de volta preditivo.

Versão 1.6.0-rc02

7 de setembro de 2022

Lançamento de androidx.activity:activity:1.6.0-rc02, androidx.activity:activity-compose:1.6.0-rc02 e androidx.activity:activity-ktx:1.6.0-rc02. A versão 1.6.0-rc02 contém estas confirmações.

Correções de bugs

  • OnBackPressedDispatcher agora registra o OnBackInvokedCallback com PRIORITY_DEFAULT em vez de PRIORITY_OVERLAY (I3901f).
  • As classes que ampliam ComponentActivity sempre vão enviar os dois callbacks onMultiWindowModeChanged() (Ic4d85).
  • O callback ActivityResultRegistry não vai mais retornar um resultado para o ActivityResultCallback quando a chamada de launch gerar uma Exception e o callback for registrado sem um LifecycleOwner (Ia7ff7, b/238350794).
  • Agora, a ComponentActivity vai enviar as chamadas do menu da maneira correta sem precisar chamar a superfunção na atividade (Ie33c5, b/238057118).

Atualização de dependências

Versão 1.6.0-rc01

24 de agosto de 2022

Lançamento de androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01 e androidx.activity:activity-ktx:1.6.0-rc01. A versão 1.6.0-rc01 contém estas confirmações.

Correções de bugs

  • A inicialização de um OnBackPressedDispatcher não vai causar mais ClassVerificationErrors ao usar versões do SDK anteriores à 33 (Ic32e1).
  • As classes que substituem o callback onPictureInPictureModeChanged() de ComponentActivity agora sempre vão enviar os próprios callbacks (Ib7fdb).

Versão 1.6.0-beta01

10 de agosto de 2022

Lançamento de androidx.activity:activity:1.6.0-beta01, androidx.activity:activity-compose:1.6.0-beta01 e androidx.activity:activity-ktx:1.6.0-beta01. A versão 1.6.0-beta01 contém estas confirmações.

Mudanças na API

  • Os métodos startActivityForResult e startIntentSenderForResult descontinuados foram marcados em ComponentActivity com @NonNull, porque a transmissão de null sempre resultava em uma falha (Id2a25, b/231476082).

Correções de bugs

  • Da Activity 1.5.1: o ActivityResultRegistry não vai mais retornar um resultado para o ActivityResultCallback quando a chamada de launch gerar uma Exception e o callback for registrado sem um LifecycleOwner (Ia7ff7, b/238350794).
  • Da Activity 1.5.1: ComponentActivity agora vai enviar da maneira correta as chamadas do menu para as substituições onPrepareOptionMenu(), onCreateOptionsMenu() e onOptionsItemSelected() sem a necessidade de chamar a superfunção (Ie33c5, b/238057118).

Atualização de dependências

Versão 1.6.0-alpha05

15 de junho de 2022

Lançamento de androidx.activity:activity:1.6.0-alpha05, androidx.activity:activity-compose:1.6.0-alpha05 e androidx.activity:activity-ktx:1.6.0-alpha05. A versão 1.6.0-alpha05 foi desenvolvida em uma ramificação de pré-lançamento particular e não tem confirmações públicas.

Mudanças na API

  • O minCompileSdk agora é 33 para se alinhar com o SDK do Tiramisu Beta 3.

Correções de bugs

  • Foi corrigida uma falha em dispositivos mais antigos ao fazer a verificação de extensão do SDK para o ActivityResultContract PickVisualMedia. Agora, ele funciona com ACTION_OPEN_DOCUMENT em dispositivos com Android 10 e versões anteriores.

Versão 1.6.0-alpha04

18 de maio de 2022

Lançamento de androidx.activity:activity:1.6.0-alpha04 e androidx.activity:activity-ktx:1.6.0-alpha04.

Correções de bugs

  • Foi corrigido um erro na classe PickVisualMediaRequest em que a tentativa de criar uma solicitação, seja pelo builder ou pela função do Kotlin de nível superior, resultava em um estouro de pilha.
  • A interface OnBackInvokedCallback no Android 13 Dev Beta 2 foi integrada à classe OnBackPressedDispatcher fornecida pela ComponentDialog. Isso garante que todas as APIs criadas na OnBackPressedDispatcher funcionem ao ativar um gesto de volta preditivo.

Versão 1.6.0-alpha03

27 de abril de 2022

Lançamento de androidx.activity:activity:1.6.0-alpha03, androidx.activity:activity-compose:1.6.0-alpha03 e androidx.activity:activity-ktx:1.6.0-alpha03.

  • Observação: essa versão vai ser compilada apenas com o SDK do Android 13 Developer Beta 1.

Novos recursos

  • Adição de ActivityResultContracts.PickVisualMedia e ActivityResultContracts.PickMultipleVisualMedia para fornecer um contrato compatível com versões anteriores que usa MediaStore.ACTION_PICK_IMAGES quando o seletor de fotos está disponível e Intent.ACTION_OPEN_DOCUMENT quando não está.
  • A interface OnBackInvokedCallback no Android 13 Dev Beta 1 foi integrada à classe OnBackPressedDispatcher fornecida pela ComponentActivity. Isso garante que todas as APIs criadas na OnBackPressedDispatcher funcionem ao ativar um gesto de volta preditivo.

Versão 1.6.0-alpha01

23 de março de 2022

Lançamento de androidx.activity:activity:1.6.0-alpha01, androidx.activity:activity-compose:1.6.0-alpha01 e androidx.activity:activity-ktx:1.6.0-alpha01.

  • Observação: essa versão vai ser compilada apenas com o SDK da prévia para desenvolvedores 2 do Android 13.

Novos recursos

  • Mudanças integradas no Android 13 Dev Preview 2 na ComponentActivity.

Versão 1.5.1

Versão 1.5.1

27 de julho de 2022

Lançamento de androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1 e androidx.activity:activity-ktx:1.5.1. A versão 1.5.1 contém estas confirmações.

Correções de bugs

  • A classe ActivityResultRegistry não vai retornar mais um resultado para a interface ActivityResultCallback quando a chamada de launch() gerar uma Exception e o callback for registrado sem um LifecycleOwner (Ia7ff7, b/238350794).

  • A ComponentActivity agora vai enviar corretamente chamadas de menu para substituições de onPrepareOptionMenu(), onCreateOptionsMenu() e onOptionsItemSelected() sem a necessidade de chamar a superfunção (Ie33c5, b/238057118).

Atualização de dependências

Versão 1.5.0

Versão 1.5.0

29 de junho de 2022

Lançamento de androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0 e androidx.activity:activity-ktx:1.5.0. A versão 1.5.0 contém estas confirmações.

Mudanças importantes desde a versão 1.4.0

  • ComponentDialog: a ComponentDialog é uma subclasse de Dialog que inclui um OnBackPressedDispatcher que vai ser chamado quando o botão "Voltar" do sistema for pressionado e a caixa de diálogo estiver visível. É importante ressaltar que essa subclasse também define a ViewTreeOnBackPressedDispatcherOwner, permitindo que as visualizações tenham uma maneira genérica de extrair o agente correto, independente de ele existir em uma ComponentActivity ou uma ComponentDialog.
  • Interfaces de callback: a ComponentActivity agora implementa um conjunto de interfaces de callback modulares que podem ser usadas no lugar dos callbacks de Activity. As interfaces incluem: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider e OnMultiWindowModeChangedProvider.
  • Integração de CreationExtras: a ComponentActivity agora pode fornecer uma interface ViewModelProvider.Factory sem estado usando a classe CreationExtras do Lifecycle 2.5.0.

Outras mudanças

  • O construtor sem parâmetro para ActivityResultContracts.CreateDocument foi descontinuado e substituído por um novo construtor, que usa um Tipo MIME concreto (por exemplo, "image/png"), conforme exigido por Intent.ACTION_CREATE_DOCUMENT.

Versão 1.5.0-rc01

11 de maio de 2022

Lançamento de androidx.activity:activity:1.5.0-rc01, androidx.activity:activity-compose:1.5.0-rc01 e androidx.activity:activity-ktx:1.5.0-rc01, sem mudanças desde a versão 1.5.0-beta01. A versão 1.5.0-rc01 contém estas confirmações.

Versão 1.5.0-beta01

20 de abril de 2022

Lançamento de androidx.activity:activity:1.5.0-beta01, androidx.activity:activity-compose:1.5.0-beta01 e androidx.activity:activity-ktx:1.5.0-beta01. A versão 1.5.0-beta01 contém estas confirmações.

Atualizações de dependência

Versão 1.5.0-alpha05

6 de abril de 2022

Lançamento de androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05 e androidx.activity:activity-ktx:1.5.0-alpha05. A versão 1.5.0-alpha05 contém estas confirmações.

Correções de bugs

  • O onPanelClosed() da ComponentActivity também chama o super onPanelClosed(), corrigindo um problema em que o método onContextMenuClosed não era chamado (Ib6f77).

Versão 1.5.0-alpha04

23 de março de 2022

Lançamento de androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04 e androidx.activity:activity-ktx:1.5.0-alpha04. A versão 1.5.0-alpha04 contém estas confirmações.

Correções de bugs

  • A SavedStateViewFactory agora oferece suporte ao uso de CreationExtras mesmo quando inicializada com um SavedStateRegistryOwner. Se extras forem fornecidos, os argumentos inicializados serão ignorados (I6c43b, b/224844583).

Versão 1.5.0-alpha03

23 de fevereiro de 2022

Lançamento de androidx.activity:activity:1.5.0-alpha03, androidx.activity:activity-compose:1.5.0-alpha03 e androidx.activity:activity-ktx:1.5.0-alpha03. A versão 1.5.0-alpha03 contém estas confirmações.

Mudanças na API

  • Agora você pode transmitir CreationExtras para a função by viewModels() da atividade (I6a3e6, b/217600303).

Versão 1.5.0-alpha02

9 de fevereiro de 2022

Lançamento de androidx.activity:activity:1.5.0-alpha02, androidx.activity:activity-compose:1.5.0-alpha02 e androidx.activity:activity-ktx:1.5.0-alpha02. A versão 1.5.0-alpha02 contém estas confirmações.

Novos recursos

  • A ComponentActivity agora implementa a interface OnPictureInPictureModeChangedProvider para permitir que qualquer componente receba eventos de mudança no modo picture-in-picture (I9f567).
  • A ComponentActivity agora implementa a interface OnMultiWindowModeChangedProvider para permitir que qualquer componente receba eventos de mudança no modo de várias janelas (I62d91).

Versão 1.5.0-alpha01

26 de janeiro de 2022

Lançamento de androidx.activity:activity:1.5.0-alpha01, androidx.activity:activity-compose:1.5.0-alpha01 e androidx.activity:activity-ktx:1.5.0-alpha01. A versão 1.5.0-alpha01 contém estas confirmações.

Novos recursos

  • ComponentActivity agora se integra ao ViewModel CreationExtras, introduzido como parte do Lifecycle 2.5.0-alpha01 (Ie7e00, b/207012584).
  • Foi adicionada a ComponentDialog, uma subclasse de Dialog que inclui um OnBackPressedDispatcher que vai ser chamado se o botão "Voltar" do sistema for pressionado quando a caixa de diálogo estiver visível. É importante ressaltar que essa subclasse também define o ViewTreeOnBackPressedDispatcherOwner, permitindo que as visualizações tenham uma maneira genérica de extrair o agente correto, independente de ele existir em uma ComponentActivity ou um ComponentDialog (I8a1bc).
  • ComponentActivity agora implementa a nova interface OnNewIntentProvider para permitir que qualquer componente receba esses eventos (If1f8b).
  • ComponentActivity agora implementa a nova interface OnConfigurationChangedProvider para permitir que qualquer componente receba esses eventos (If623b).
  • ComponentActivity agora implementa a nova interface OnTrimMemoryProvider para permitir que qualquer componente receba esses eventos (Ia9295).

Mudanças na API

  • O construtor sem parâmetro para ActivityResultContracts.CreateDocument foi descontinuado e substituído por um novo construtor que usa um tipo MIME concreto (por exemplo, "image/png"), conforme exigido por Intent.ACTION_CREATE_DOCUMENT (I2bec6).
  • O OnBackPressedDispatcherOwner associado a uma visualização agora pode ser extraído pelo ViewTreeOnBackPressedDispatcherOwner, em vez de depender da transmissão do Context (I74685).

Correções de bugs

  • Corrigida uma falha ao acessar um ViewModel pela primeira vez de um callback registerForActivityResult() ou dos callbacks de um LifecycleObserver adicionado como parte da init de uma ComponentActivity (Ife83f).

Versão 1.4.0

Versão 1.4.0

27 de outubro de 2021

Lançamento de androidx.activity:activity:1.4.0, androidx.activity:activity-compose:1.4.0 e androidx.activity:activity-ktx:1.4.0. A versão 1.4.0 contém estas confirmações.

Mudanças importantes desde a versão 1.3.0

  • A ComponentActivity do AndroidX agora implementa a interface MenuHost. Isso possibilita que qualquer componente adicione itens de menu à ActionBar acrescentando uma instância do MenuProvider à atividade. Cada MenuProvider pode ser adicionado com um Lifecycle, que vai controlar automaticamente a visibilidade desses itens de menu com base no estado do Lifecycle e processar a remoção do MenuProvider quando o Lifecycle for destruído.
  • A classe ActivityResultContract foi reescrita em Kotlin para garantir que os desenvolvedores que escrevem contratos personalizados em Kotlin possam definir a nulidade correta das classes de entrada e saída.
  • A classe ActivityResultContracts e os contratos dela foram reescritos em Kotlin para garantir a nulidade correta.

Versão 1.4.0-rc01

13 de outubro de 2021

Lançamento de androidx.activity:activity:1.4.0-rc01, androidx.activity:activity-compose:1.4.0-rc01 e androidx.activity:activity-ktx:1.4.0-rc01. A versão 1.4.0-rc01 contém estas confirmações.

Correções de bugs

  • O ActivityResultRegistry não vai mais retornar um resultado para o ActivityResultCallback quando a chamada launch gerar uma Exception (If4f91, b/200845664).

Versão 1.4.0-beta01

29 de setembro de 2021

Lançamento de androidx.activity:activity:1.4.0-beta01, androidx.activity:activity-compose:1.4.0-beta01 e androidx.activity:activity-ktx:1.4.0-beta01. A versão 1.4.0-beta01 contém estas confirmações.

Mudanças na API

  • Os tipos de ActivityResultContracts.OpenMultipleDocuments e ActivityResultContracts.GetMultipleContents que geravam uma saída do tipo List<? extends Uri> ao usar o código da linguagem de programação Java foram corrigidos (If71de).
  • Constantes públicas nas classes ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult e ActivityResultContracts.RequestMultiplePermissions agora podem ser acessadas ao usar o Kotlin com os objetos Companion públicos delas (aosp/1832555).

Atualizações da documentação

  • As mensagens de descontinuação das APIs gerenciadas pelas APIs Activity Result, como startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions e onRequestPermissionsResult, agora oferecem mais detalhes (cce80f).

Versão 1.4.0-alpha02

15 de setembro de 2021

Lançamento de androidx.activity:activity:1.4.0-alpha02, androidx.activity:activity-compose:1.4.0-alpha02 e androidx.activity:activity-ktx:1.4.0-alpha02. A versão 1.4.0-alpha02 contém estas confirmações.

Novos recursos

  • O artefato activity-compose agora contém um erro lint LaunchDuringComposition que impede a chamada do método launch do ActivityResultLauncher como parte da composição, já que ela precisa ser livre de efeitos colaterais. Use as APIs para processar efeitos colaterais (7c2bbe, b/191347220).

Mudanças na API

  • A classe ActivityResultContract foi reescrita em Kotlin para garantir que os desenvolvedores que escrevem contratos personalizados nessa linguagem possam definir a nulidade correta das classes de entrada e saída (I8a8f5).
  • A classe ActivityResultContracts e os contratos dela foram reescritos em Kotlin para garantir a nulidade correta (I69802).

Versão 1.4.0-alpha01

1º de setembro de 2021

Lançamento de androidx.activity:activity:1.4.0-alpha01, androidx.activity:activity-compose:1.4.0-alpha01 e androidx.activity:activity-ktx:1.4.0-alpha01. A versão 1.4.0-alpha01 contém estas confirmações.

Novos recursos

  • O AndroidX ComponentActivity agora implementa a interface MenuHost. Isso possibilita que qualquer componente adicione itens de menu à ActionBar acrescentando uma instância do MenuProvider à atividade. Cada MenuProvider pode ser adicionado com um Lifecycle, que vai controlar automaticamente a visibilidade desses itens de menu com base no estado do Lifecycle e processar a remoção do MenuProvider quando o Lifecycle for destruído. (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)
  }

Mudanças de comportamento

  • O ActivityResultRegistry agora vai gerar uma IllegalStateException ao tentar chamar launch() em um ActivityResultLauncher que não tenha sido registrado ou cujo registro tenha sido cancelado (Ida75d, b/192567522).

Contribuição externa

  • Agradecemos a dmitrilc (link em inglês) por corrigir um erro de digitação na documentação do ActivityResult (#221).

Versão 1.3.1

Versão 1.3.1

4 de agosto de 2021

Lançamento de androidx.activity:activity:1.3.1, androidx.activity:activity-compose:1.3.1 e androidx.activity:activity-ktx:1.3.1. A versão 1.3.1 contém estas confirmações.

Atualizações de dependência

  • A Activity agora depende do Kotlin 1.5.21.
  • A Activity Compose agora depende do Compose 1.0.1.

Versão 1.3.0

Versão 1.3.0

28 de julho de 2021

Lançamento de androidx.activity:activity:1.3.0, androidx.activity:activity-compose:1.3.0 e androidx.activity:activity-ktx:1.3.0. A versão 1.3.0 contém estas confirmações.

Mudanças importantes desde a versão 1.2.0

  • Artefato do Activity Compose: o artefato activity-compose fornece o método de extensão setContent para hospedar a IU do Jetpack Compose em uma atividade. Ele também fornece wrappers específicos do Compose para interagir com as APIs ComponentActivity ao processar o botão "Voltar" do sistema e as APIs Activity Result. Consulte a documentação para ver mais detalhes.
  • Contrato CaptureVideo: o ActivityResultContract do CaptureVideo substitui o contrato descontinuado TakeVideo e retorna um booleano indicando que a ação foi realizada corretamente. Esse booleano funciona em vários apps de câmera.
  • Rastreamento de dicas de visualização Picture-In-Picture: os usuários de activity-ktx agora podem usar o método de extensão trackPipAnimationHintView na Activity para recriar automaticamente os PictureInPictureParams com a nova posição da visualização, já que ela muda de acordo com a janela.

Versão 1.3.0-rc02

14 de julho de 2021

Lançamento de androidx.activity:activity:1.3.0-rc02, androidx.activity:activity-compose:1.3.0-rc02 e androidx.activity:activity-ktx:1.3.0-rc02. A versão 1.3.0-rc02 contém estas confirmações.

Correções de bugs

  • Os callbacks ActivityResultRegistry agora são salvos e restaurados de maneira adequada para que não sejam duplicados no savedState (I97816, b/191893160).

Versão 1.3.0-rc01

1º de julho de 2021

Lançamento de androidx.activity:activity:1.3.0-rc01, androidx.activity:activity-compose:1.3.0-rc01 e androidx.activity:activity-ktx:1.3.0-rc01, sem mudanças desde a 1.3.0-beta02. A versão 1.3.0-rc01 contém estas confirmações.

Versão 1.3.0-beta02

16 de junho de 2021

Lançamento de androidx.activity:activity:1.3.0-beta02, androidx.activity:activity-compose:1.3.0-beta02 e androidx.activity:activity-ktx:1.3.0-beta02. A versão 1.3.0-beta02 contém estas confirmações.

Atualização de activity-compose para depender do Compose 1.0.0-beta09. O androidx.compose.ui:ui-test-junit4 agora tem uma dependência de tempo de compilação no artefato activity-compose.

Versão 1.3.0-beta01

2 de junho de 2021

Lançamento de androidx.activity:activity:1.3.0-beta01, androidx.activity:activity-compose:1.3.0-beta01 e androidx.activity:activity-ktx:1.3.0-beta01. A versão 1.3.0-beta01 contém estas confirmações.

Mudanças na API

  • O método @Composable registerForActivityResult(), já descontinuado, foi removido. Use o método rememberLauncherForActivityResult() (Ic39d3).

Versão 1.3.0-alpha08

18 de maio de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha08, androidx.activity:activity-compose:1.3.0-alpha08 e androidx.activity:activity-ktx:1.3.0-alpha08. A versão 1.3.0-alpha08 contém estas confirmações.

Novos recursos

  • O novo ActivityResultContract CaptureVideo retorna para o ActivityResultCallback um booleano que indica se o vídeo foi salvo no URI fornecido. Isso substitui o contrato TakeVideo descontinuado, já que os apps de câmera muito raramente oferecem suporte ao retorno de um bitmap de miniaturas, o que torna o resultado inútil (Ie21f2, b/185938070).
  • A nova API Activity#setPipAnimationHintView foi adicionada para atualizar a dica de retângulo de origem do PipParams sempre que a visualização se move (I9063d).

Mudanças na API

  • A função rememberLauncherForActivityResult agora retorna uma tela de início que descontinua o uso da função unregister(). O registro e o cancelamento do registro da tela de início é processado automaticamente por rememberLauncherForActivityResult (I2443e).

Compatibilidade do Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 só é compatível com a versão 1.0.0-beta07 do Compose e mais recentes.

Versão 1.3.0-alpha07

21 de abril de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha07, androidx.activity:activity-compose:1.3.0-alpha07 e androidx.activity:activity-ktx:1.3.0-alpha07. A versão 1.3.0-alpha07 contém estas confirmações.

Correções de bugs

  • rememberLauncherForActivityResult agora retorna uma referência estável para a mesma instância de ActivityResultLauncher, mesmo que o contrato mude devido a recomposições (Id2d6d).
  • O uso de versões instáveis dos Fragments mais recentes que a 1.3.0 vai deixar de gerar um erro lint falso positivo que instrui você a usar 1.3.0 (aosp/1670206, b/184847092).

Versão 1.3.0-alpha06

7 de abril de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha06, androidx.activity:activity-compose:1.3.0-alpha06 e androidx.activity:activity-ktx:1.3.0-alpha06. A versão 1.3.0-alpha06 contém estas confirmações.

Mudanças na API

  • A API registerForActivityResult() foi renomeada como rememberLauncherForActivityResult() para indicar melhor que o ActivityResultLauncher retornado é um objeto gerenciado que é lembrado para você. A tentativa de chamar unregister do ActivityResultLauncher retornado agora emitirá um erro (I2bb6d).
  • LocalOnBackPressedDispatcherOwner.current e LocalActivityResultRegistryOwner.current agora retornam um valor anulável para determinar melhor se ele está disponível na composição atual. As APIs que exigem essas APIs, como BackHandler e rememberLauncherForActivityResult(), respectivamente, passarão a gerar um erro mais descritivo se o proprietário não for encontrado. NavHost agora funciona mesmo quando um OnBackPressedDispatcherOwner não é encontrado, como ao visualizar o NavHost (I7d8b4).

Correções de bugs

  • O BackHandler agora vai interceptar corretamente os pressionamentos do botão "Voltar" caso a atividade seja STOPPED (encerrada), depois STARTED (iniciada) novamente e outros callbacks forem adicionados com um LifecycleOwner (I71de6, b/182284739).
  • O uso da extensão do método launch() com um ActivityResultContract personalizado que tem uma entrada Unit não vai mais causar uma NullPointerException (I76282 .b/183837954).

Versão 1.3.0-alpha05

24 de março de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha05, androidx.activity:activity-compose:1.3.0-alpha05 e androidx.activity:activity-ktx:1.3.0-alpha05. A versão 1.3.0-alpha05 contém estas confirmações.

Correções de bugs

  • Na Activity 1.2.2 e mais recentes: foi corrigido um problema na verificação de lint InvalidFragmentVersionForActivityResult que gerava um falso positivo ao usar o Fragment 1.3.1 ou mais recente (I54da1, b/182388985).
  • A partir da Activity 1.2.2: a ComponentActivity agora evita uma ClassNotFoundException ao iniciar uma Intent de um ActivityResultContract que estava retido como um extra em outra Intent (Ieff05, b/182906230).

Atualizações de dependência

Versão 1.3.0-alpha04

10 de março de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha04, androidx.activity:activity-compose:1.3.0-alpha04 e androidx.activity:activity-ktx:1.3.0-alpha04. A versão 1.3.0-alpha04 contém estas confirmações.

Correções de bugs

  • Na Activity 1.2.1 e mais recentes: RequestMultiplePermissions agora sempre retorna os resultados de todas as permissões solicitadas, em vez de somente permissões que não foram concedidas anteriormente (I50bc3, b/180884668).
  • Na Activity 1.2.1 e mais recentes: ActivityResultRegistry agora garante que as solicitações launch() em andamento retornem os resultados mesmo que você unregister() (cancele o registro) e depois as register() (registre) novamente com a mesma chave (I9ef34, b/181267562).
  • A Activity Compose não adiciona mais dependências de teste ao caminho de classe do tempo de execução (Ifd8b3).
  • Foi corrigido um problema com o BackHandler, em que a lambda onBack definida anteriormente ainda estava sendo usada após a recomposição (8eb5eb).

Versão 1.3.0-alpha03

24 de fevereiro de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha03, androidx.activity:activity-compose:1.3.0-alpha03 e androidx.activity:activity-ktx:1.3.0-alpha03. A versão 1.3.0-alpha03 contém estas confirmações.

Novos recursos

  • Existe agora uma função registerForActivityResult de composição que tem como objetivo receber resultados de atividades nos elementos que podem ser compostos (Ia7851, b/172690553).

Mudanças na API

  • LocalOnBackPressedDispatcherOwner agora tem uma função provides que pode ser usada com CompositionLocalProvider, substituindo a API asProvidableCompositionLocal() (I45d24).

Versão 1.3.0-alpha02

10 de fevereiro de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha02, androidx.activity:activity-compose:1.3.0-alpha02 e androidx.activity:activity-ktx:1.3.0-alpha02. A versão 1.3.0-alpha02 contém estas confirmações.

Correções de bugs

  • Correção de um problema no Activity Compose 1.3.0-alpha01 que causava uma exceção NoSuchMethodError: No static method setContent ao usar o Compose 1.0.0-alpha12. Todos os usuários do Compose precisam usar 1.3.0-alpha02 ou mais recente como dependência (b/179911234).

Mudanças na API

  • A API BackHandler pode ser usada para permitir que um elemento combinável possa interceptar o botão "Voltar" do sistema (I58ed5, b/172154006).

Versão 1.3.0-alpha01

10 de fevereiro de 2021

Lançamento de androidx.activity:activity:1.3.0-alpha01, androidx.activity:activity-compose:1.3.0-alpha01 e androidx.activity:activity-ktx:1.3.0-alpha01. A versão 1.3.0-alpha01 contém estas confirmações.

Novos recursos

  • O novo artefato activity-compose fornece auxiliares específicos do Jetpack Compose para APIs específicas androidx.activity.
    • ComponentActivity.setContent foi movido de androidx.compose.ui.platform.setContent para androidx.activity.compose.setContent (Icf416).

Problemas conhecidos

  • O uso do Activity Compose 1.3.0-alpha01 e bibliotecas que dependem dele, como androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, vai resultar em uma exceção NoSuchMethodError: No static method setContent (b/179911234).

Versão 1.2.4

Versão 1.2.4

21 de julho de 2021

Lançamento de androidx.activity:activity:1.2.4 e androidx.activity:activity-ktx:1.2.4. A versão 1.2.4 contém estas confirmações.

Correções de bugs

  • Na Activity 1.3.0-rc02 e mais recentes: os callbacks ActivityResultRegistry agora são salvos e restaurados corretamente para que não sejam duplicados no savedState (I97816, b/191893160).

Versão 1.2.3

Versão 1.2.3

5 de maio de 2021

Lançamento de androidx.activity:activity:1.2.3 e androidx.activity:activity-ktx:1.2.3. A versão 1.2.3 contém estas confirmações.

Correções de bugs

  • O uso da extensão do método launch() com um ActivityResultContract personalizado que tem uma entrada Unit não vai mais causar uma NullPointerException (I76282 .b/183837954).
  • Foi corrigido um erro de lint falso positivo que dizia para usar a versão 1.3.0 do Fragment ao usar um build de snapshot, Alfa, Beta ou RC de uma versão mais recente de Fragments (f4a57e, b/184847092).

Versão 1.2.2

Versão 1.2.2

24 de março de 2021

Lançamento de androidx.activity:activity:1.2.2 e androidx.activity:activity-ktx:1.2.2. A versão 1.2.2 contém estas confirmações.

Correções de bugs

  • Correção de um problema na verificação de lint InvalidFragmentVersionForActivityResult que gerava um falso positivo ao usar o Fragment 1.3.1 ou mais recente (I54da1, b/182388985).
  • A ComponentActivity agora evita uma ClassNotFoundException ao iniciar uma Intent de um ActivityResultContract que era mantido como um extra em outra Intent (Ieff05, b/182906230).

Atualizações de dependência

Versão 1.2.1

Versão 1.2.1

10 de março de 2021

Lançamento de androidx.activity:activity:1.2.1 e androidx.activity:activity-ktx:1.2.1. A versão 1.2.1 contém estas confirmações.

Correções de bugs

  • RequestMultiplePermissions agora sempre retorna resultados para todas as permissões solicitadas, e não somente permissões que não foram concedidas anteriormente (I50bc3, b/180884668).
  • O callback ActivityResultRegistry agora garante que as solicitações launch() em andamento retornem os resultados mesmo que você unregister() (cancele o registro) e depois register() (registre) novamente com a mesma chave (I9ef34, b/181267562).

Versão 1.2.0

Versão 1.2.0

10 de fevereiro de 2021

Lançamento de androidx.activity:activity:1.2.0 e androidx.activity:activity-ktx:1.2.0. A versão 1.2.0 contém estas confirmações.

Principais mudanças desde a versão 1.1.0

  • APIs Activity Result: o ComponentActivity agora oferece um ActivityResultRegistry que permite processar startActivityForResult()+onActivityResult() e fluxos de requestPermissions()+onRequestPermissionsResult() sem substituir métodos na Activity ou no Fragment, traz maior segurança de tipo com ActivityResultContract e fornece hooks para testar esses fluxos. Veja a atualização de Como ver um resultado de uma atividade.
  • ContextAware: ComponentActivity agora implementa ContextAware, permitindo que você adicione uma ou mais instâncias de OnContextAvailableListener que recebem um callback antes da Activity.onCreate() base.

    • Uma extensão Kotlin de suspensão withContextAvailable() permite que você execute um bloco que não é de suspensão quando o contexto fica disponível e retorna um resultado
    • Essa API é usada por FragmentActivity no Fragment 1.3.0 para restaurar o estado do FragmentManager. Todos os listeners adicionados às subclasses da FragmentActivity serão executados depois desse listener.
    • Essa API é usada por AppCompatActivity no AppCompat 1.3.0-alpha02 ou mais recentes. Todos os listeners adicionados às subclasses da AppCompatActivity serão executados depois desse listener.
  • Suporte a ViewTree: a ComponentActivity agora oferece suporte às APIs ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) e ViewTreeSavedStateRegistryOwner adicionadas no Lifecycle 2.3.0 e SavedState 1.1.0 para retornar a atividade como o LifecycleOwner, ViewModelStoreOwner e SavedStateRegistryOwner para qualquer visualização adicionada diretamente à ComponentActivity.

  • Backport de reportFullyDrawn(): o método Activity de reportFullyDrawn() passou por um backport na ComponentActivity para funcionar em todos os níveis de API, corrigindo uma falha na API 19 e adicionando o rastreamento desse método para todos os níveis da API.

Versão 1.2.0-rc01

16 de dezembro de 2020

Lançamento de androidx.activity:activity:1.2.0-rc01 e androidx.activity:activity-ktx:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

Correções de bugs

  • O ActivityResultRegistry agora restaura sempre o estado exato em que foi salvo (Idd56b).
  • Adição do rastreamento ao ComponentActivity.reportFullyDrawn (Ic7632).

Contribuição externa

  • ComponentActivity agora substitui o método reportFullyDrawn(), permitindo que ele seja chamado em todos os níveis da API e corrigindo uma falha ao chamar esse método sem a permissão adequada do sistema nos dispositivos com a API 19. Agradecemos a Simon Schiller (b/163239764, #103).

Versão 1.2.0-beta02

2 de dezembro de 2020

Lançamento de androidx.activity:activity:1.2.0-beta02 e androidx.activity:activity-ktx:1.2.0-beta02. A versão 1.2.0-beta02 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema em que a API Activity Result não esperava o Lifecycle entrar no estado STARTED antes de enviar resultados quando ele estava registrado com um Lifecycle (I109ea).

Contribuição externa

  • A documentação de launch() foi atualizada para deixar claro que ele pode gerar uma ActivityNotFoundException. Agradecemos a Michał Zieliński (aosp/1493580).

Versão 1.2.0-beta01

1º de outubro de 2020

Lançamento de androidx.activity:activity:1.2.0-beta01 e androidx.activity:activity-ktx:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

Correções de bugs

  • O ActivityResultRegistry agora gera números inteiros aleatoriamente até encontrar um que não esteja alocado para usar como um código de solicitação register(), evitando o possível estouro de números inteiros causado por incrementação de códigos de solicitação (b/168779518).

  • Os observadores Lifecycle são removidos adequadamente ao chamar unregister() em um ActivityResultLauncher (b/165608393).

Mudanças de comportamento

  • O ActivityResultRegistry agora gera uma IllegalStateException ao tentar chamar register() com um LifecycleOwner cujo Lifecycle já atingiu o status STARTED (b/165435866).

Documentação atualizada

  • A documentação de ContextAware está vinculada ao LifecycleOwner para destacar callbacks de Lifecycle como o local apropriado para eventos de criação e destruição (aosp/1414152).

Versão 1.2.0-alpha08

19 de agosto de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha08 e androidx.activity:activity-ktx:1.2.0-alpha08. A versão 1.2.0-alpha08 contém estas confirmações.

Novos recursos

  • ComponentActivity agora implementa ContextAware, permitindo que você adicione uma ou mais instâncias de OnContextAvailableListener, que recebem um callback antes do método Activity.onCreate() base (b/161390636).
    • Uma extensão Kotlin de suspensão withContextAvailable() permite que você execute um bloco que não é de suspensão quando o contexto fica disponível e retorna um resultado (I8290c).
    • Essa API é usada por FragmentActivity no Fragment 1.3.0-alpha08 para restaurar o estado do FragmentManager. Todos os listeners adicionados às subclasses da FragmentActivity serão executados depois desse listener (I513da).
    • Essa API é usada pela AppCompatActivity no AppCompat 1.3.0-alpha02. Todos os listeners adicionados às subclasses da AppCompatActivity serão executados depois desse listener (I513da).

Correções de bugs

  • Foi corrigido um problema com a verificação de lint ActivityResultFragmentVersionDetector que fazia com que ela falhasse ao usar o Lint 27.1.0 ou mais recente (b/162155191)

Versão 1.2.0-alpha07

22 de julho de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha07 e androidx.activity:activity-ktx:1.2.0-alpha07. A versão 1.2.0-alpha07 contém estas confirmações.

Novos recursos

  • Foi incluída uma nova verificação de lint InvalidFragmentVersionForActivityResult que verifica se você está usando o Fragment 1.3.0-alpha07 ao usar a API Activity Result. Isso evita falhas durante a execução devido a problemas de "código de solicitação inválido" e solicitações de permissão não funcionais causadas pelo uso de versões mais antigas de Fragments (b/152554847).

Contribuição externa

  • Correção de um ArrayIndexOutOfBoundsException ao analisar os resultados para o contrato de Activity Result RequestPermission (I8f9e3, b/161057605).

Versão 1.2.0-alpha06

10 de junho de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha06 e androidx.activity:activity-ktx:1.2.0-alpha06. A versão 1.2.0-alpha06 contém estas confirmações.

Novos recursos

  • Agora é possível desestruturar a classe ActivityResult no Kotlin para acessar requestCode e intent diretamente (b/157212935).
  • ActivityResultLauncher agora permite que você receba o ActivityResultContract que foi usado para registrar a tela de início (b/156875743).

Mudanças na API

  • Alteração interruptiva: o método invoke() em ActivityResultRegistry foi renomeado como onLaunch() (b/157496491).
  • O contrato OpenMultipleDocuments agora retorna uma lista vazia em vez de null para o callback registrado caso nenhum resultado seja retornado (b/157348014).

Versão 1.2.0-alpha05

20 de maio de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha05 e androidx.activity:activity-ktx:1.2.0-alpha05. A versão 1.2.0-alpha05 contém estas confirmações.

Novos recursos

Mudanças na API

  • O contrato TakePicture agora retorna um boolean indicando sucesso, em vez de um Bitmap em miniatura, já que raramente tinha suporte em apps de câmera ao gravar a imagem no Uri fornecido (b/154302879).
  • As extensões invoke() na ActivityResultLauncher foram removidas em favor do uso explícito de launch() para indicar melhor que essas são operações assíncronas. As extensões Kotlin para launch foram adicionadas ao pacote androidx.activity.result para ActivityResultLauncher<Void> e ActivityResultLauncher<Unit>, o que elimina a necessidade de transmitir null ou Unit, respectivamente, espelhando esse comportamento das extensões invoke() anteriores (aosp/1304674, aosp/1304675).
  • Os métodos IntentSenderRequest.Builder para setFlagsMask() e setFlagsValues() foram combinados em um único método setFlags() (aosp/1302111).

Correções de bugs

  • Ao registrar uma interface ActivityResultCallback com um LifecycleOwner, foi corrigido um problema em que o callback era acionado antes de chegar ao estado STARTED (aosp/1309744).

Mudanças de comportamento

  • A ActivityResultRegistry agora gera códigos de solicitação com base em 0xFFFF em vez de 0, impedindo a sobreposição ao usar startActivityForResult() ou requestPermissions() em uma atividade (aosp/1302324).

Versão 1.2.0-alpha04

29 de abril de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha04 e androidx.activity:activity-ktx:1.2.0-alpha04. A versão 1.2.0-alpha04 contém estas confirmações.

Novos recursos

  • Foi adicionado um contrato que pode chamar startIntentSenderForResult para as APIs ActivityResult (b/153007517).

Mudanças na API

  • O método prepareCall() foi renomeado como registerForActivityResult(), tanto em ComponentActivity como no fragmento 1.3.0-alpha04 (aosp/1278717).
  • Os contratos GetContents, OpenDocuments e RequestPermissions foram renomeados como GetMultipleContents, OpenMultipleDocuments e RequestMultiplePermissions, respectivamente (aosp/1280161).
  • ComponentActivity agora implementa a interface ActivityResultRegisteryOwner (aosp/1290888).
  • As APIs startActivityForResult()/onActivityResult() e onRequestPermissionsResult() na ComponentActivity foram descontinuadas. Use as APIs Activity Result (b/154751887).

Correções de bugs

  • Ao usar os contratos GetMultipleContents e OpenMultipleDocuments e selecionar um único item, ele vai ser retornado corretamente ao callback (b/152941153, link em inglês).

Versão 1.2.0-alpha03

1º de abril de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha03 e androidx.activity:activity-ktx:1.2.0-alpha03. A versão 1.2.0-alpha03 contém estas confirmações.

Novos recursos

  • Adição dos contratos TakeVideo, PickContact, GetContent, GetContents, OpenDocument, OpenDocuments, OpenDocumentTree e CreateDocument ao conjunto de contratos pré-criados fornecidos por ActivityResultContracts (aosp/1262482, aosp/1266916, aosp/1268960).
  • As APIs Activity Result agora oferecem suporte à inicialização de uma atividade de resultado com ActivityOptionsCompat opcionais (b/151860054, link em inglês).

Mudanças na API

  • O contrato TakePicture usa uma entrada Uri para onde a imagem será armazenada. O contrato anterior que não aceita entradas foi renomeado como TakePicturePreview (aosp/1262482).
  • O método registerActivityResultCallback() em ActivityResultRegistry foi renomeado como register() (aosp/1267621).
  • O método dispose() na ActivityResultLauncher foi renomeado como unregister(), e o unregisterResultCallback() na ActivityResultRegistry foi removido (aosp/1267621).
  • O método createIntent() de ActivityResultContact agora usa um Context além da entrada para possibilitar a criação de intents explícitas (aosp/1238800).
  • Um ActivityResultContract agora pode modificar getSynchronousResult() para entregar um resultado sem chamar startActivityForResult. Isso é usado pelos contratos RequestPermission e RequestPermissions para mostrar corretamente o status "concedido" se as permissões solicitadas já tiverem sido concedidas (b/151110799).
  • O contrato Dial anteriormente disponível foi removido porque Intent não pode ser usado com startActivityForResult() (aosp/1266916).
  • Muitas das APIs Activity Result que não podem ser estendidas agora são final. Isso inclui getActivityResultRegistry(), os métodos prepareCall(), todos os métodos de ActivityResultRegistry, exceto invoke(), e vários contratos padrão que não têm suporte a extras opcionais (b/152439361).

Correções de bugs

  • Foi corrigida uma NullPointerException no ActivityResultRegistry ao tentar entregar resultados a um callback que ainda não foi registrado novamente após uma mudança de configuração. O ActivityResultRegistry agora mantém esses resultados pendentes e os entrega quando o callback é registrado novamente (b/152137004).

Versão 1.2.0-alpha02

18 de março de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha02 e androidx.activity:activity-ktx:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Novos recursos

  • ActivityResultRegistry: o ComponentActivity agora oferece um ActivityResultRegistry que permite processar startActivityForResult()+onActivityResult() e fluxos de requestPermissions()+onRequestPermissionsResult() sem substituir métodos na Activity ou no Fragment, traz maior segurança do tipo com ActivityResultContract e fornece hooks para testar esses fluxos. Veja a atualização de Como ver um resultado de uma atividade (b/125158199).

Versão 1.2.0-alpha01

4 de março de 2020

Lançamento de androidx.activity:activity:1.2.0-alpha01 e androidx.activity:activity-ktx:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Novos recursos

  • Foi incluído suporte à API ViewTreeLifecycleOwner.get(View) adicionada no Lifecycle 2.3.0-alpha01. Ela vai retornar a atividade como o LifecycleOwner para qualquer visualização adicionada diretamente à atividade (aosp/1182955).

Correções de bugs

  • Foi corrigida uma regressão introduzida na Activity 1.1.0 quando executada em versões mais antigas da plataforma. O método onBackPressed() causava uma IllegalStateException devido a um bug no android.app.FragmentManager (b/146290338).

Versão 1.1.0

Versão 1.1.0

22 de janeiro de 2020

Lançamento de androidx.activity:activity:1.1.0. A versão 1.1.0 contém estas confirmações.

Mudanças importantes desde a versão 1.0.0

  • Integração do ciclo de vida ViewModel SavedState: a SavedStateViewModelFactory agora é a fábrica padrão empregada ao usar o by viewModels(), o construtor ViewModelProvider ou ViewModelProviders.of() com uma ComponentActivity ou as subclasses dela.

Versão 1.1.0-rc03

4 de dezembro de 2019

Lançamento de androidx.activity:activity:1.1.0-rc03 e androidx.activity:activity-ktx:1.1.0-rc03. A versão 1.1.0-rc03 contém estas confirmações.

Mudanças na dependência

  • Agora, a atividade depende do Lifecycle 2.2.0-rc03 e do Lifecycle ViewModel SavedState 1.0.0-rc03.

Versão 1.1.0-rc02

7 de novembro de 2019

Lançamento de androidx.activity:activity:1.1.0-rc02 e androidx.activity:activity-ktx:1.1.0-rc02. A versão 1.1.0-rc02 contém estas confirmações.

Mudanças na dependência

  • A atividade agora depende do ciclo de vida 2.2.0-rc02.

Versão 1.1.0-rc01

23 de outubro de 2019

Lançamento de androidx.activity:activity:1.1.0-rc01 e androidx.activity:activity-ktx:1.1.0-rc01, sem mudanças desde 1.1.0-beta01. Versão 1.1.0-rc01 contém estas confirmações.

Versão 1.1.0-beta01

9 de outubro de 2019

Lançamento de androidx.activity:activity:1.1.0-beta01 e androidx.activity:activity-ktx:1.1.0-beta01. Versão 1.1.0-beta01 contém estas confirmações.

Mudanças na dependência

  • A atividade agora depende do SavedState 1.0.0 estável.

Versão 1.1.0-alpha03

5 de setembro de 2019

Lançamento de androidx.activity:activity:1.1.0-alpha03 e androidx.activity:activity-ktx:1.1.0-alpha03. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • A atividade depende do Core 1.1.0 estável.

Correções de bugs

Versão 1.1.0-alpha02

7 de agosto de 2019

Lançamento de androidx.activity:activity:1.1.0-alpha02 e androidx.activity:activity-ktx:1.1.0-alpha02. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • SavedStateViewModelFactory agora é a fábrica padrão empregada ao usar by viewModels(), o construtor ViewModelProvider ou ViewModelProviders.of() com ComponentActivity (b/135716331).

Versão 1.1.0-alpha01

2 de julho de 2019

Lançamento de androidx.activity:activity:1.1.0-alpha01 e androidx.activity:activity-ktx:1.1.0-alpha01. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • activity agora depende do Lifecycle 2.2.0-alpha02 (aosp/1007817).
  • O activity-ktx adicionou uma dependência no lifecycle-runtime-ktx. Ele não precisa mais ser adicionado explicitamente às suas dependências ao usar o activity-ktx ou bibliotecas que dependem do activity-ktx, como fragment-ktx (aosp/987162).

Versão 1.0.0

Versão 1.0.0

5 de setembro de 2019

Lançamento de androidx.activity:activity:1.0.0 e androidx.activity:activity-ktx:1.0.0. As confirmações incluídas nessa versão podem ser encontradas neste link.

Principais recursos do 1.0.0

  • ComponentActivity: ComponentActivity serve como a nova classe base para FragmentActivity no Fragment 1.1.0 e, por extensão, AppCompatActivity em AppCompat1.1.0.
  • activity-ktx: o módulo activity-ktx inclui uma extensão de propriedade by viewModels do Kotlin para acessar ViewModels. Esse módulo é incluído automaticamente quando você adiciona fragment-ktx do Fragment 1.1.0.
  • OnBackPressedDispatcher: como uma alternativa composta à modificação de onBackPressed(), agora você pode registrar um OnBackPressedCallback de qualquer LifecycleOwner (como um fragmento) para interceptar eventos do botão "Voltar" do sistema. Um lambda com versão de receptor addCallback foi adicionado a activity-ktx. Consulte a página Oferecer navegação de retorno personalizada para mais detalhes.
  • Descontinuação de onRetainCustomNonConfigurationInstance: o método onRetainCustomNonConfigurationInstance() e as APIs getLastCustomNonConfigurationInstance() relacionadas foram descontinuados. É altamente recomendável usar ViewModels para armazenar o estado de não configuração porque eles oferecem uma solução composta adequada para qualquer ViewModelStoreOwner que torne clara a propriedade dos objetos retidos e forneça um callback de onCleared() para limpar recursos quando a atividade é finalmente destruída.

Versão 1.0.0-rc01

2 de julho de 2019

Lançamento de androidx.activity:activity:1.0.0-rc01 e androidx.activity:activity-ktx:1.0.0-rc01, sem mudanças desde 1.0.0-beta01. As confirmações incluídas nessa versão podem ser encontradas neste link.

Versão 1.0.0-beta01

5 de junho de 2019

Lançamento de androidx.activity::activity:1.0.0-beta01 e androidx.activity:activity-ktx:1.0.0-beta01, sem mudanças desde 1.0.0-alpha08. As confirmações incluídas nessa versão podem ser encontradas neste link.

Versão 1.0.0-alpha08

7 de maio de 2019

Lançamento de androidx.activity:activity:1.0.0-alpha08 e androidx.activity:activity-ktx:1.0.0-alpha08. As confirmações incluídas nessa versão podem ser encontradas neste link.

Mudanças na API

  • Alteração interruptiva: os métodos addOnBackPressedCallback e removeOnBackPressedCallback descontinuados na ComponentActivity foram removidos (aosp/953857).
  • Os métodos setEnabled() e isEnabled() de OnBackPressedCallback agora são finais (b/131416833).
  • O método remove() de OnBackPressedCallback agora é final (aosp/952720).
  • A OnBackPressedDispatcher agora tem construtores públicos, permitindo construir as próprias instâncias para testes etc. (aosp/953431).
  • O onBackPressed() para ComponentActivity agora é explicitamente marcado como @MainThread (aosp/952721).

Correções de bugs

  • Foi corrigida uma ConcurrentModificationException que ocorria ao chamar remove() de dentro do método handleOnBackPressed() de um OnBackPressedCalback que foi adicionado com um LifecycleOwner (b/131765095).

Versão 1.0.0-alpha07

25 de abril de 2019

Lançamento de androidx.activity:activity:1.0.0-alpha07 e androidx.activity:activity-ktx:1.0.0-alpha07. As confirmações incluídas nessa versão podem ser encontradas neste link.

Mudanças na API

Essa versão faz mudanças significativas no processamento de onBackPressed(). Consulte a documentação atualizada sobre o retorno personalizado para saber mais detalhes.

  • Os métodos para OnBackPressedCallback e OnBackPressedDispatcher foram marcados como @MainThread (aosp/943813).
  • O método handleOnBackPressed() não retorna mais um boolean. Agora, OnBackPressedCallback é uma classe abstrata que pode ser ativada ou desativada. O método handleOnBackPressed() vai ser chamado apenas quando o novo método isEnabled() retornar um valor "true" (verdadeiro), e é necessário lidar com o botão "Voltar" (aosp/944518).
  • Os métodos addCallback de OnBackPressedDispatcher não retornam mais uma instância Cancellable. A classe OnBackPressedCallback agora contém um método remove() que preenche essa funcionalidade, permitindo que você chame remove() durante o handleOnBackPressed() (aosp/944519) (aosp/946316).
  • activity-ktx agora contém um callback com escopo no receptor para addCallback que aceita um lambda. Esse lambda implementa handleOnBackPressed() e tem acesso a isEnabled e a remove() (aosp/944520).

Versão 1.0.0-alpha06

3 de abril de 2019

Lançamento de androidx.activity:activity:1.0.0-alpha06 e androidx.activity:activity-ktx:1.0.0-alpha06. As confirmações incluídas nessa versão podem ser encontradas neste link.

Mudanças na API

  • AppCompatActivity agora contém um segundo construtor que usa um @LayoutRes int, que substitui o comportamento anterior de anotar sua classe AppCompatActivity com @ContentView. Essa abordagem funciona nos módulos do app e da biblioteca (b/128352521).
  • As APIs relacionadas à classe OnBackPressedCallback na ComponentActivity foram descontinuadas e substituídas pela nova OnBackPressedDispatcher, que pode ser extraída com getOnBackPressedDispatcher() (aosp/922523).
  • Os métodos para adicionar um novo OnBackPressedCallback ao OnBackPressedDispatcher agora retornam um objeto Cancellable, permitindo a remoção do callback sem exigir uma referência explícita ao OnBackPressedDispatcher (aosp/922523).
  • Adicionar um OnBackPressedCallback com um LifecycleOwner associado agora resulta na adição e remoção de OnBackPressedCallback quando o ciclo de vida é iniciado e interrompido, respectivamente (aosp/922523, link em inglês).

Versão 1.0.0-alpha05

13 de março de 2019

Lançamento de androidx.activity:activity:1.0.0-alpha05 e androidx.activity:activity-ktx:1.0.0-alpha05. A lista completa de confirmações incluídas nessa versão pode ser encontrada neste link.

Novos recursos

  • As pesquisas da anotação @ContentView agora são armazenadas em cache (b/123709449).

Versão 1.0.0-alpha04

30 de janeiro de 2019

Lançamento de androidx.activity:activity 1.0.0-alpha04 e androidx.activity:activity-ktx 1.0.0-alpha04.

Novos recursos

  • Foi adicionado suporte à anotação da classe @ContentView, que permite indicar qual arquivo XML de layout vai ser inflado como alternativa ao uso de setContentView() (aosp/837619).

Mudanças na API

  • Incluída uma observação de que getViewModelStore() não precisa ser modificado e que será considerado final em uma versão futura. Registre uma solicitação de recurso se você estiver substituindo esse método atualmente (aosp/837619).

Correções de bugs

  • O módulo activity agora depende da versão 2.1.0-alpha02 de ViewModel para corresponder à dependência do módulo activity-ktx.

Versão 1.0.0-alpha03

17 de dezembro de 2018

Lançamento de androidx.activity 1.0.0-alpha03.

Novos recursos

  • ComponentActivity agora implementa BundleSavedStateRegistryOwner e depende da recém-lançada biblioteca SavedState [aosp/815133].
  • ComponentActivity agora soluciona um bug do framework Android que fazia o InputMethodManager vazar a última visualização focada [b/37122102].

Versão 1.0.0-alpha02

3 de dezembro de 2018

Mudanças na API

Versão 1.0.0-alpha01

5 de novembro de 2018

androidx.activity 1.0.0-alpha01 apresenta ComponentActivity, uma nova classe base das FragmentActivity e AppCompatActivity existentes.

Novos recursos

  • Agora você pode registrar a classe OnBackPressedCallback via addOnBackPressedCallback para receber callbacks onBackPressed() sem ter que substituir o método na atividade.
  • Incluído um novo delegado da propriedade Kotlin by viewModels() para recuperar ViewModels de uma ComponentActivity.
  • Eventos de entrada pendentes, como cliques, agora são cancelados em onStop().

Mudanças na API

  • A implementação de LifecycleOwner e ViewModelStoreOwner foi movida de FragmentActivity para ComponentActivity.
  • O uso de onRetainCustomNonConfigurationInstance foi descontinuado. Use um ViewModel para armazenar objetos que precisam sobreviver às mudanças de configuração.