Attività

Accedi alle API componibili basate sull'attività.
Aggiornamento più recente Release stabile Candidato per l'uscita Versione beta Release alpha
26 giugno 2024 1.9.0 - - 1.10.0-alpha01

Dichiarazione delle dipendenze

Per aggiungere una dipendenza all'attività, devi aggiungere il Repository Maven di Google al progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

Trendy

dependencies {
    def activity_version = "1.9.0"

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

Kotlin

dependencies {
    val activity_version = "1.9.0"

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

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se scopri nuovi problemi o hai idee per migliorare questa raccolta. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a stella.

Crea un nuovo numero

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.10

Versione 1.10.0-alpha01

26 giugno 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.10.0-alpha01, androidx.activity:activity-compose:1.10.0-alpha01 e androidx.activity:activity-ktx:1.10.0-alpha01. Questa versione è sviluppata in un ramo interno.

Nuove funzionalità

  • È stato aggiunto il supporto delle nuove funzionalità di PhotoPicker introdotte in Android V, inclusa la possibilità di scegliere le immagini in ordine e scegliere quale scheda (album o immagini) dovrebbe essere inizialmente visibile.

Versione 1.9

Versione 1.9.0

17 aprile 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0 e androidx.activity:activity-ktx:1.9.0. La versione 1.9.0 contiene questi commit.

Modifiche importanti dalla versione 1.8.0

  • ComponentActivity ora implementa OnUserLeaveHintProvider per consentire ai componenti di richiamare gli eventi onUserLeaveHint.
  • Le API OnBackPressedCallback, BackHandler e PredictiveBackHandler ora inviano un avviso quando si chiama onBackPressedDispatcher.onBackPressed() durante la gestione, poiché ciò causerà sempre l'interruzione dell'animazione predittiva a dorso. Per ulteriori dettagli, consulta la guida alle best practice.
  • Le altre API Activity sono state riscritte in Kotlin e tutte le estensioni precedentemente disponibili in activity-ktx sono state spostate in activity. Il campo activity-ktx è ora completamente vuoto.
    • Nell'ambito della conversione di ActivityResultLauncher in Kotlin, il metodo getContract è ora una proprietà Kotlin astratta. Si tratta di una modifica compatibile con i file binari, ma il codice sorgente non funziona se la tua implementazione di ActivityResultLauncher è scritta in Kotlin.

Versione 1.9.0-rc01

3 aprile 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01 e androidx.activity:activity-ktx:1.9.0-rc01. La versione 1.9.0-rc01 contiene questi commit.

Aggiornamento delle dipendenze

Versione 1.9.0-beta01

20 marzo 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01 e androidx.activity:activity-ktx:1.9.0-beta01. La versione 1.9.0-beta01 contiene questi commit.

Correzioni di bug

  • È stata corretta una regressione delle prestazioni dell'avvio dell'attività introdotta nell'Attività 1.9.0-alpha02 a causa della chiamata a OnBackPressedDispatcher come parte della creazione dell'attività. (Ie75e3).

Versione 1.9.0-alpha03

7 febbraio 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03 e androidx.activity:activity-ktx:1.9.0-alpha03. La versione 1.9.0-alpha03 contiene questi commit.

Avviso lint

Correzioni di bug

  • Se un evento Indietro viene inviato dal sistema durante un Gesto Indietro predittivo già in esecuzione, il Gesto Indietro predittivo attualmente in esecuzione viene annullato e viene sostituito il nuovo evento Indietro per avviare un nuovo Gesto Indietro predittivo. (I3482e)
  • È stato risolto l'arresto anomalo durante l'accesso a onBackPressedDispatcher da un ComponentActivity per la prima volta da un thread in background. Ora puoi accedere all'onBackPressedDispatcher su qualsiasi thread. (I79955)

Versione 1.9.0-alpha02

24 gennaio 2024

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02 e androidx.activity:activity-ktx:1.9.0-alpha02. La versione 1.9.0-alpha02 contiene questi commit.

Conversioni di Kotlin

  • ActivityResultRegistry è stato riscritto in Kotlin. In questo modo, i valori null dei valori generici del contratto inviato a register verranno trasmessi correttamente al ActivityResultLauncher restituito. (I121f0)
  • ActivityResult è stato riscritto in Kotlin. Le estensioni Kotlin ActivityResult che supportano la destrutturazione nei campi resultCode e data sono state spostate da activity-ktx a activity. (I0565a)
  • Le estensioni Kotlin di by viewModels() per ComponentActivity e trackPipAnimationHintView sono state spostate da activity-ktx a activity. L'elemento activity-ktx è ora completamente vuoto. (I0a444)

Correzioni di bug

  • L'API enableEdgeToEdge ora traccia i ritagli del display. (a3644b, b/311173461)
  • In Attività 1.8.2: è stato corretto l'extra trasmesso al contratto di attività del selettore di foto ACTION_SYSTEM_FALLBACK_PICK_IMAGES per trasmettere correttamente la chiave EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, anziché utilizzare quella extra con la chiave "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Questa opzione è vivamente consigliata se sei un OEM e implementa un selettore di foto di riserva di sistema per supportare entrambi gli extra e garantire la massima compatibilità. (I96a00)

Versione 1.9.0-alpha01

29 novembre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01 e androidx.activity:activity-ktx:1.9.0-alpha01. La versione 1.9.0-alpha01 contiene questi commit.

Nuove funzionalità

  • ComponentActivity ora implementa OnUserLeaveHintProvider per consentire ai componenti di richiamare gli eventi onUserLeaveHint. (I54892)

Modifiche alle API

  • ComponentActivity è stato riscritto in Kotlin. (I14f31)
  • ActivityResultCaller è stato riscritto in Kotlin. (Ib02e4).
  • ActivityResultLauncher è stato riscritto in Kotlin. Nell'ambito di questa conversione, il metodo getContract è ora una proprietà Kotlin astratta. Si tratta di una modifica compatibile con i file binari, ma il codice sorgente non funziona se la tua implementazione di ActivityResultLauncher è scritta in Kotlin. (ID4615)
  • Ora PickVisualMediaRequest ha lo stesso livello API minimo di 19 del contratto Risultato attività PickVisualMedia. (ID6e21)

Aggiornamento delle dipendenze

Versione 1.8

Versione 1.8.2

13 dicembre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2 e androidx.activity:activity-ktx:1.8.2. La versione 1.8.2 contiene questi commit.

Correzioni di bug

  • È stato corretto l'extra trasmesso al contratto attività del selettore di foto ACTION_SYSTEM_FALLBACK_PICK_IMAGES per trasmettere correttamente la chiave EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, anziché utilizzare l'extra con la chiave "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Questa opzione è vivamente consigliata se sei un OEM e implementa un selettore di foto di riserva di sistema per supportare entrambi gli extra e garantire la massima compatibilità. (I96a00)

Versione 1.8.1

15 novembre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1 e androidx.activity:activity-ktx:1.8.1. La versione 1.8.1 contiene questi commit.

Correzioni di bug

  • Ora OnBackPressedDispatcher continua a inviare messaggi al OnBackPressedCallback corretto anche dopo l'aggiunta di un nuovo OnBackPressedCallback durante la gestione del gesto Indietro. (ID0ff6)

Versione 1.8.0

4 ottobre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0 e androidx.activity:activity-ktx:1.8.0. La versione 1.8.0 contiene questi commit.

Modifiche importanti dalla versione 1.7.0

  • Indietro predittivo: OnBackPressedCallback ora offre nuovi callback predittivi Indietro per gestire l'avvio del gesto Indietro, l'avanzamento durante il gesto e l'annullamento del gesto Indietro oltre al callback handleOnBackPressed() precedente per quando viene eseguito il commit del gesto Indietro. In aggiunta, viene fornito anche l'elemento componibile PredictiveBackHandler per gestire gli eventi predittivi del gesto Indietro in Scrittura attività. Fornisce un flusso di oggetti BackEventCompat che devono essere raccolti nella lamba di sospensione fornita:
  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() è stato deprecato e sostituito con le API per la gestione. Ora gli sviluppatori dovrebbero utilizzare OnBackPressedDispatcher, anziché eseguire l'override di questo metodo.

  • EdgeToEdge: è stato aggiunto lo ComponentActivity.enableEdgeToEdge() per configurare facilmente il display edge-to-edge in modo compatibile con le versioni precedenti.

Versione 1.8.0-rc01

20 settembre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01 e androidx.activity:activity-ktx:1.8.0-rc01. La versione 1.8.0-rc01 contiene questi commit.

Versione 1.8.0-beta01

6 settembre 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01 e androidx.activity:activity-ktx:1.8.0-beta01. La versione 1.8.0-beta01 contiene questi commit.

Miglioramento della documentazione

  • È stata migliorata la documentazione di BackEventCompat. (aosp/2722254).

Versione 1.8.0-alpha07

23 agosto 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07 e androidx.activity:activity-ktx:1.8.0-alpha07. La versione 1.8.0-alpha07 contiene questi commit.

Nuove funzionalità

  • Scrittura attività ha aggiunto un nuovo componibile PredictiveBackHandler per gestire gli eventi predittivi dei gesti Indietro. Fornisce Flow di BackEventCompat oggetti che devono essere raccolti nella lamba di sospensione fornita:

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

    Include anche un avviso sul tempo di compilazione tramite una regola lint per garantire che Flow chiami collect(). (Id2773, b/294884345)

  • onBackPressedDispatcher in ComponentActivity è ora inizializzato in modo lento, in modo da essere creato solo quando richiesto. (I0bf8e)

Correzioni di bug

  • ComponentActivity non mostrerà più un NPE su Android 13 quando riceve una richiamata di onBackPressed() e l'attività è già stata DESTROYED. (Idb055, b/291869278)
  • Sono stati rimossi gli utilizzi dell'API isAtLeastU() sperimentale (Ie9117, b/289269026)

Versione 1.8.0-alpha06

21 giu 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06 e androidx.activity:activity-ktx:1.8.0-alpha06. La versione 1.8.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Ora l'OnBackPressedDispatcher annulla correttamente tutti i callback rimossi durante un Gesto Indietro predittivo. (I3f90f)

Modifiche alle API

  • Quando passi SystemBarStyle.auto all'API enableEdgeToEdge, ora puoi eseguire l'override del parametro lambda detectDarkMode per fornire una logica personalizzata per il rilevamento della modalità notturna. (aosp/2546393, b/278263793)

Versione 1.8.0-alpha05

7 giugno 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05 e androidx.activity:activity-ktx:1.8.0-alpha05. Questa versione è sviluppata in un ramo interno.

Modifiche alle API

  • L'attività ora fornisce una classe BackEventCompat che funge da versione compatibile con le versioni precedenti di BackEvent disaccoppiata dalla classe BackEvent del framework.
  • Modifica dell'interruzione: i metodi handleOnBackStarted e handleOnBackProgressed di OnBackPressedCallback ora ricevono un'istanza androidx.activity.BackEventCompat anziché una classe android.window.BackEvent del framework. Sono state aggiornate anche le API @VisibleForTesting equivalenti su OnBackPressedDispatcher.
  • Il costruttore di OnBackPressedDispatcher ora prende un'istanza Consumer<Boolean> facoltativa che consente ai proprietari del supervisore di ricevere un callback ogni volta che il numero di callback abilitati cambia da zero a zero o viceversa.

Correzioni di bug

  • Dall'Attività 1.7.2: è stato risolto il problema che causava l'arresto anomalo di ReportDrawn durante l'uscita da una schermata prima della chiamata di report. (Ic46f1, b/260506820)

Versione 1.8.0-alpha04

10 maggio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04 e androidx.activity:activity-ktx:1.8.0-alpha04. Questo è stato rilasciato da un ramo interno.

Correzioni di bug

Versione 1.8.0-alpha03

12 aprile 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03 e androidx.activity:activity-ktx:1.8.0-alpha03. Questo è stato rilasciato da un ramo interno.

Nuove funzionalità

  • È stato aggiunto ComponentActivity.setUpEdgeToEdge() per configurare facilmente il display edge-to-edge in modo compatibile con le versioni precedenti.

Modifiche alle API

  • ComponentActivity.onBackPressed() è stato deprecato e sostituito con le API per la gestione. Ora gli sviluppatori dovrebbero utilizzare OnBackPressedDispatcher, anziché eseguire l'override di questo metodo. (Ibce2f, b/271596918)
  • ComponentDialog e ComponentActivity ora contengono l'API pubblica initViewTreeOwners() da utilizzare per inizializzare tutti i proprietari di strutture ad albero delle viste prima di impostare la visualizzazione dei contenuti. (Ibdce0, b/261314581)

Correzioni di bug

  • È stato risolto un problema per cui i Frammenti venivano invalidati erroneamente MenuHost e causavano un comportamento imprevisto di altri menu nell'Attività. (I9404e, b/244336571)

Altre modifiche

  • ActivityResultRegister ora utilizza Kotlin Random anziché Java. (I4d98f, b/272096025)

Versione 1.8.0-alpha02

8 marzo 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02 e androidx.activity:activity-ktx:1.8.0-alpha02. Sviluppato da un ramo interno.

Aggiornamento delle dipendenze

Versione 1.8.0-alpha01

8 febbraio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.8.0-alpha01, androidx.activity:activity-compose:1.8.0-alpha01 e androidx.activity:activity-ktx:1.8.0-alpha01. Questa è stata creata da un ramo interno.

Nuove funzionalità

  • La classe OnBackPressedCallback ora contiene nuovi callback predittivi per l'avanzamento che consentono di gestire l'avvio del gesto Indietro, l'avanzamento durante il gesto e l'annullamento del gesto Indietro, oltre al callback handleOnBackPressed() precedente per quando viene eseguito il commit del gesto Indietro.

Versione 1.7

Versione 1.7.2

24 maggio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2 e androidx.activity:activity-ktx:1.7.2. La versione 1.7.2 contiene questi commit.

Correzioni di bug

  • È stato risolto il problema che causava l'arresto anomalo di ReportDrawn durante l'uscita da una schermata prima della chiamata di report. (Ic46f1, b/260506820)

Versione 1.7.1

19 aprile 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1 e androidx.activity:activity-ktx:1.7.1. La versione 1.7.1 contiene questi commit.

Correzioni di bug

  • ReportFullyDrawExecuter non genera più perdite quando utilizzi ComponentActivity con ActivityScenario. (Id2ff2, b/277434271)

Versione 1.7.0

22 marzo 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0 e androidx.activity:activity-ktx:1.7.0. La versione 1.7.0 contiene questi commit.

Modifiche importanti dalla versione 1.6.0

  • I contratti relativi all'attività del selettore di foto in PickVisualMedia e PickMultipleVisualMedia sono stati aggiornati in modo da includere un'ulteriore riserva per i casi in cui MediaStore.ACTION_PICK_IMAGES non è disponibile. In questo modo, gli OEM e le app di sistema, come Google Play Services, possono offrire un'esperienza coerente con il selettore di foto su una gamma più ampia di dispositivi Android e livelli API implementando l'azione di riserva. Il selettore di foto utilizzerà questo elemento di riserva, se disponibile, prima di utilizzare Intent.ACTION_OPEN_DOCUMENT, che continuerà a supportare tutti i dispositivi con API 19 e versioni successive.
  • Ora ComponentDialog implementa SavedStateRegistryOwner, ha accesso al proprio SavedStateRegistry e imposta SavedStateRegistryOwner per ViewTree. Ora è possibile utilizzare Jetpack Compose all'interno di un ComponentDialog poiché soddisfa sia i LifecycleOwner sia i SavedStateRegistryOwner collegati alla finestra tramite i requisiti delle API ViewTree.
  • IntentSenderRequest.Builder.setFlags() ora ti consente di impostare più flag da Intent, anziché un solo flag.

Conversione di Kotlin

Alcune classi di attività sono state convertite in Kotlin. Tutte le classi convertite conservano comunque la compatibilità binaria con le versioni precedenti. Le seguenti classi presentano modifiche incompatibili con le origini per le classi scritte in Kotlin: ActivityResultRegistryOwner, OnBackPressedDispatcherOwner.

La tabella seguente fornisce le conversioni di origine per la nuova versione dell'Attività:

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

Anche questi corsi sono stati convertiti in Kotlin, ma rimangono compatibili con l'origine: ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest e OnBackPressedDispatcher

API FullyDrawnReporter

ComponentActivity ora fornisce un'istanza FullyDrawnReporter che consente a più componenti di segnalare quando sono pronti per l'interazione. ComponentActivity attenderà il completamento di tutti i componenti prima di chiamare reportFullyDrawn() per tuo conto. Queste API si occupano dei requisiti di tempistica e non devono essere chiamate nell'ambito di una chiamata onDraw.

Queste API sono invitati ad abilitare:

  • Segnalazione di Android Runtime al completamento dell'avvio, per garantire che tutto il codice venga eseguito durante una sequenza di avvio multi-frame sia incluso e prioritario per la compilazione in background.
  • Segnalare Macrobenchmark e Play Vitals quando la tua applicazione deve essere considerata come utilizzata in modo completo per le metriche di avvio, in modo da poter monitorare le prestazioni.

Sono state aggiunte tre API Activity Compose per semplificare l'utilizzo di FullyDrawnReporter da singoli componibili:

  • ReportDrawn indica che il componibile è immediatamente pronto per l'interazione.
  • ReportDrawnWhen richiede un predicato (ad es. list.count > 0) per indicare quando il componibile è pronto per l'interazione.
  • ReportDrawnAfter adotta un metodo di sospensione che, una volta completato, indica che puoi interagire.

Aggiornamenti delle dipendenze

Versione 1.7.0-rc01

8 marzo 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01 e androidx.activity:activity-ktx:1.7.0-rc01. La versione 1.7.0-rc01 contiene questi commit.

Aggiornamento delle dipendenze

Versione 1.7.0-beta02

22 febbraio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02 e androidx.activity:activity-ktx:1.7.0-beta02. La versione 1.7.0-beta02 contiene questi commit.

Modifiche alle API

  • L'azione e gli extra utilizzati dai contratti PickVisualMedia e PickMultipleVisualMedia come alternativa per i casi in cui MediaStore.ACTION_PICK_IMAGES non è disponibile sono ora costanti pubbliche che forniscono stabilità dell'API agli OEM e alle app di sistema che vogliono offrire un'esperienza coerente con il selettore di foto. L'implementazione di questa funzione di riserva è ancora limitata alle sole app di sistema. (Icd320)

Versione 1.7.0-beta01

8 febbraio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-beta01, androidx.activity:activity-compose:1.7.0-beta01 e androidx.activity:activity-ktx:1.7.0-beta01. La versione 1.7.0-beta01 contiene questi commit.

Nuove funzionalità

  • IntentSenderRequest.Builder.setFlags() ora ti consente di impostare più flag da Intent, anziché un solo flag. (Iac04c)

Correzioni di bug

  • Il fallback per PickVisualMedia per quando il selettore di foto del framework non è disponibile ora limita correttamente la gestione alle app installate nell'immagine di sistema del dispositivo. (If8ae6).

Conversioni di Kotlin

  • ActivityResultRegistryOwner ora è scritto in Kotlin. Questa è una modifica non compatibile con l'origine per le classi scritte in Kotlin: ora devi eseguire l'override della proprietà activityResultRegistry anziché implementare la funzione getActivityResultRegistry() precedente. (I0b00e)
  • OnBackPressedDispatcherOwner ora è scritto in Kotlin. Questa è una modifica non compatibile con l'origine per le classi scritte in Kotlin: ora devi eseguire l'override della proprietà onBackPressedDispatcher anziché implementare la funzione getOnBackPressedDispatcher precedente. (Ia277d)
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest e OnBackPressedDispatcher sono ora scritti in Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)

Versione 1.7.0-alpha04

25 gennaio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04 e androidx.activity:activity-ktx:1.7.0-alpha04. La versione 1.7.0-alpha04 contiene questi commit.

Nuove funzionalità

  • I contratti relativi ai risultati delle attività di PickVisualMedia e PickMultipleVisualMedia ora utilizzeranno un selettore di foto fornito da Google Play Services, ove disponibile nei casi in cui il sistema Android abbia fornito il selettore di foto (ad es. MediaStore.ACTION_PICK_IMAGES) non è disponibile. L'API isPhotoPickerAvailable() che rileva solo il selettore di foto fornito dal sistema Android è stata deprecata. Ti consigliamo di utilizzare la nuova API isPhotoPickerAvailable(Context), che verrà restituita se è disponibile uno dei due selettori di foto. (I55be6)

Versione 1.7.0-alpha03

11 gennaio 2023

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-alpha03, androidx.activity:activity-compose:1.7.0-alpha03 e androidx.activity:activity-ktx:1.7.0-alpha03. La versione 1.7.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Ora ComponentDialog implementa SavedStateRegistryOwner, ha accesso al proprio SavedStateRegistry e imposta SavedStateRegistryOwner per il ViewTree. Ora è possibile utilizzare Jetpack Compose all'interno di un ComponentDialog poiché soddisfa sia i LifecycleOwner sia i SavedStateRegistryOwner collegati alla finestra tramite i requisiti dell'API ViewTree. (Idca17, I73468 b/261162296)

Modifiche alle API

  • È stato aggiunto un componibile ReportDrawn che contrassegna immediatamente l'attività come pronta per la chiamata reportFullyDrawn. (Ic5b14, b/259687964)

Conversioni di Kotlin

  • Le classi ActvitiyResultCallback e OnBackPressedCallback sono state entrambe convertite in Kotlin, mantenendo la compatibilità con i file sorgente e binari. (Ifc5e5, Ide1b0, b/257291701)

Versione 1.7.0-alpha02

24 ottobre 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-alpha02, androidx.activity:activity-compose:1.7.0-alpha02 e androidx.activity:activity-ktx:1.7.0-alpha02. La versione 1.7.0-alpha02 contiene questi commit.

Correzioni di bug

  • Da Attività 1.6.1: è stato risolto un problema relativo al contratto Risultato dell'attività di PickMultipleVisualMedia non avviato sui dispositivi Android R quando si utilizza il valore predefinito per maxItems. (Ie2776, b/249182130)

Versione 1.7.0-alpha01

5 ottobre 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.7.0-alpha01, androidx.activity:activity-compose:1.7.0-alpha01 e androidx.activity:activity-ktx:1.7.0-alpha01. La versione 1.7.0-alpha01 contiene questi commit.

API FullyDrawnReporter

ComponentActivity ora fornisce un'istanza FullyDrawnReporter che consente a più componenti di segnalare quando sono pronti per l'interazione. ComponentActivity attenderà il completamento di tutti i componenti prima di chiamare reportFullyDrawn() per tuo conto. Queste API si occupano dei requisiti di tempistica e non devono essere chiamate nell'ambito di una chiamata onDraw.

Queste API sono invitati ad abilitare:

  • Segnalazione di Android Runtime al completamento dell'avvio, per garantire che tutto il codice venga eseguito durante una sequenza di avvio multi-frame sia incluso e prioritario per la compilazione in background.
  • Segnalare Macrobenchmark e Play Vitals quando la tua applicazione deve essere considerata come utilizzata in modo completo per le metriche di avvio, in modo da poter monitorare le prestazioni.

Sono state aggiunte due API Activity Compose per rendere più pratico l'utilizzo di FullyDrawnReporter da singoli componibili:

  • ReportDrawnWhen richiede un predicato (ad es. list.count > 0) per indicare quando il componibile è pronto per l'interazione.
  • ReportDrawnAfter adotta un metodo di sospensione che, una volta completato, indica che puoi interagire.

Versione 1.6.1

Versione 1.6.1

24 ottobre 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.1, androidx.activity:activity-compose:1.6.1 e androidx.activity:activity-ktx:1.6.1. La versione 1.6.1 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema a causa del quale il contratto Risultato attività di PickMultipleVisualMedia non veniva avviato sui dispositivi Android R quando veniva utilizzato il valore predefinito di maxItems. (Ie2776, b/249182130)

Versione 1.6.0

Versione 1.6.0

21 settembre 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0, androidx.activity:activity-compose:1.6.0 e androidx.activity:activity-ktx:1.6.0. La versione 1.6.0 contiene questi commit.

Modifiche importanti dalla versione 1.5.0

  • Sono stati aggiunti ActivityResultContracts.PickVisualMedia e ActivityResultContracts.PickMultipleVisualMedia per fornire un contratto compatibile con le versioni precedenti che utilizza MediaStore.ACTION_PICK_IMAGES quando il selettore di foto è disponibile e Intent.ACTION_OPEN_DOCUMENT quando non è disponibile.
  • Integrazione di OnBackInvokedCallback in Android 13 nel OnBackPressedDispatchers fornito da ComponentActivity e ComponentDialog. Ciò garantisce che tutte le API basate su OnBackPressedDispatcher funzionino quando si abilita un gesto Indietro predittivo.

Versione 1.6.0-rc02

7 settembre 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-rc02, androidx.activity:activity-compose:1.6.0-rc02 e androidx.activity:activity-ktx:1.6.0-rc02. La versione 1.6.0-rc02 contiene questi commit.

Correzioni di bug

  • OnBackPressedDispatcher ora registra OnBackInvokedCallback con PRIORITY_DEFAULT anziché PRIORITY_OVERLAY. (I3901f)
  • Per le classi che estendono ComponentActivity ora verranno sempre inviati entrambi i callback onMultiWindowModeChanged(). (Ic4d85)
  • ActivityResultRegistry non restituirà più un risultato a ActivityResultCallback quando la chiamata launch genera un Exception e il callback è stato registrato senza LifecycleOwner. (Ia7ff7, b/238350794)
  • Ora ComponentActivity invierà correttamente le chiamate di menu senza dover chiamare la super funzione nella tua attività. (Ie33c5, b/238057118)

Aggiornamento delle dipendenze

Versione 1.6.0-rc01

24 agosto 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01 e androidx.activity:activity-ktx:1.6.0-rc01. La versione 1.6.0-rc01 contiene questi commit.

Correzioni di bug

  • L'inizializzazione di un OnBackPressedDispatcher non causerà più ClassVerificationError quando si utilizzano versioni dell'SDK precedenti alla 33. (Ic32e1).
  • I callback per le classi che eseguono l'override del callback onPictureInPictureModeChanged() di ComponentActivity verranno sempre inviati. (Ib7fdb)

Versione 1.6.0-beta01

10 agosto 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-beta01, androidx.activity:activity-compose:1.6.0-beta01 e androidx.activity:activity-ktx:1.6.0-beta01. La versione 1.6.0-beta01 contiene questi commit.

Modifiche alle API

  • I metodi startActivityForResult e startIntentSenderForResult deprecati sono stati contrassegnati il giorno ComponentActivity con @NonNull perché il superamento di null ha sempre causato un arresto anomalo. (Id2a25, b/231476082)

Correzioni di bug

  • Da Attività 1.5.1: ActivityResultRegistry non restituirà più un risultato a ActivityResultCallback quando la chiamata launch restituisce un Exception e il callback è stato registrato senza un LifecycleOwner. (Ia7ff7, b/238350794)
  • Dall'attività 1.5.1: ora ComponentActivity invierà correttamente le chiamate di menu a onPrepareOptionMenu(), onCreateOptionsMenu() e onOptionsItemSelected() senza dover chiamare la super funzione. (Ie33c5, b/238057118)

Aggiornamento delle dipendenze

Versione 1.6.0-alpha05

15 giugno 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-alpha05, androidx.activity:activity-compose:1.6.0-alpha05 e androidx.activity:activity-ktx:1.6.0-alpha05. La versione 1.6.0-alpha05 è stata sviluppata in un ramo privato pre-release e non ha commit pubblici.

Modifiche alle API

  • minCompileSdk ora è 33 per allinearsi all'SDK Tiramisu beta 3

Correzioni di bug

  • È stato risolto l'arresto anomalo su dispositivi meno recenti durante il controllo delle estensioni SDK per PickVisualMedia ActivityResultContract, che ora dovrebbe funzionare con ACTION_OPEN_DOCUMENT su dispositivi con Android 10 e versioni precedenti.

Versione 1.6.0-alpha04

18 maggio 2022

Vengono rilasciate le versioni androidx.activity:activity:1.6.0-alpha04 e androidx.activity:activity-ktx:1.6.0-alpha04.

Correzioni di bug

  • È stato corretto un errore in PickVisualMediaRequest per cui il tentativo di creare una richiesta, tramite lo strumento Builder o la funzione Kotlin di primo livello, avrebbe comportato un overflow dello stack.
  • Integrazione di OnBackInvokedCallback in Android 13 Dev Beta 2 nel OnBackPressedDispatcher fornito da ComponentDialog. Ciò garantisce che tutte le API basate su OnBackPressedDispatcher funzionino durante l'attivazione di un gesto Indietro predittivo.

Versione 1.6.0-alpha03

27 aprile 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-alpha03, androidx.activity:activity-compose:1.6.0-alpha03 e androidx.activity:activity-ktx:1.6.0-alpha03.

  • Nota: questa versione si compilerà solo a fronte dell'SDK beta 1 per gli sviluppatori Android 13.

Nuove funzionalità

  • Sono stati aggiunti ActivityResultContracts.PickVisualMedia e ActivityResultContracts.PickMultipleVisualMedia per fornire un contratto compatibile con le versioni precedenti che utilizza MediaStore.ACTION_PICK_IMAGES quando il selettore di foto è disponibile e Intent.ACTION_OPEN_DOCUMENT quando non è disponibile.
  • Integrazione di OnBackInvokedCallback in Android 13 Dev Beta 1 nel OnBackPressedDispatcher fornito da ComponentActivity. Ciò garantisce che tutte le API basate su OnBackPressedDispatcher funzionino durante l'attivazione di un gesto Indietro predittivo.

Versione 1.6.0-alpha01

23 marzo 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.6.0-alpha01, androidx.activity:activity-compose:1.6.0-alpha01 e androidx.activity:activity-ktx:1.6.0-alpha01.

  • Nota: questa versione si compilerà solo in base all'SDK Android 13 Developer Preview 2.

Nuove funzionalità

  • Modifiche integrate nell'Anteprima per sviluppatori di Android 13 2 in ComponentActivity.

Versione 1.5.1

Versione 1.5.1

27 luglio 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1 e androidx.activity:activity-ktx:1.5.1. La versione 1.5.1 contiene questi commit.

Correzioni di bug

  • ActivityResultRegistry non restituirà più un risultato a ActivityResultCallback quando la chiamata launch() genera un Exception e il callback è stato registrato senza LifecycleOwner. (Ia7ff7, b/238350794)

  • Ora ComponentActivity invierà correttamente le chiamate di menu a onPrepareOptionMenu(), onCreateOptionsMenu() e onOptionsItemSelected() override senza dover chiamare la super funzione. (Ie33c5, b/238057118)

Aggiornamento delle dipendenze

Versione 1.5.0

Versione 1.5.0

29 giugno 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0 e androidx.activity:activity-ktx:1.5.0. La versione 1.5.0 contiene questi commit.

Modifiche importanti dalla versione 1.4.0

  • ComponentDialog: ComponentDialog è una sottoclasse di Dialog che include una OnBackPressedDispatcher che verrà richiamata quando viene premuto il pulsante Indietro del sistema e la finestra di dialogo è visibile. È importante sottolineare che questa sottoclasse imposta anche ViewTreeOnBackPressedDispatcherOwner, consentendo alle visualizzazioni un modo generico per recuperare il supervisore corretto se esiste in un ComponentActivity o in un ComponentDialog.
  • Interfacce di callback: ComponentActivity ora implementa una serie di interfacce di callback modulari che possono essere utilizzate al posto dei callback Activity. Sono incluse le seguenti interfacce: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider
  • Integrazione CreationExtras: ComponentActivity ora è in grado di fornire un ViewModelProvider.Factory stateless tramite CreationExtras di Lifecycle 2.5.0.

Altre modifiche

  • Il costruttore senza parametri per ActivityResultContracts.CreateDocument è stato deprecato e sostituito con un nuovo costruttore che accetta un tipo MIME concreto (ad es. "image/png") come richiesto da Intent.ACTION_CREATE_DOCUMENT.

Versione 1.5.0-rc01

11 maggio 2022

androidx.activity:activity:1.5.0-rc01, androidx.activity:activity-compose:1.5.0-rc01 e androidx.activity:activity-ktx:1.5.0-rc01 vengono rilasciate senza modifiche dalla versione 1.5.0-beta01. La versione 1.5.0-rc01 contiene questi commit.

Versione 1.5.0-beta01

20 aprile 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-beta01, androidx.activity:activity-compose:1.5.0-beta01 e androidx.activity:activity-ktx:1.5.0-beta01. La versione 1.5.0-beta01 contiene questi commit.

Aggiornamenti delle dipendenze

Versione 1.5.0-alpha05

6 aprile 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05 e androidx.activity:activity-ktx:1.5.0-alpha05. La versione 1.5.0-alpha05 contiene questi commit.

Correzioni di bug

  • Ora il onPanelClosed() di ComponentActivity chiama anche il super onPanelClosed(), risolvendo un problema per cui il metodo onContextMenuClosed non veniva chiamato. (Ib6f77).

Versione 1.5.0-alpha04

23 marzo 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04 e androidx.activity:activity-ktx:1.5.0-alpha04. La versione 1.5.0-alpha04 contiene questi commit.

Correzioni di bug

  • SavedStateViewFactory ora supporta l'utilizzo di CreationExtras anche se è stato inizializzato con SavedStateRegistryOwner. Se vengono forniti extra, gli argomenti inizializzati vengono ignorati. (I6c43b, b/224844583)

Versione 1.5.0-alpha03

23 febbraio 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-alpha03, androidx.activity:activity-compose:1.5.0-alpha03 e androidx.activity:activity-ktx:1.5.0-alpha03. La versione 1.5.0-alpha03 contiene questi commit.

Modifiche alle API

  • Ora puoi passare CreationExtras alla funzione by viewModels() dell'attività (I6a3e6, b/217600303)

Versione 1.5.0-alpha02

9 febbraio 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-alpha02, androidx.activity:activity-compose:1.5.0-alpha02 e androidx.activity:activity-ktx:1.5.0-alpha02. La versione 1.5.0-alpha02 contiene questi commit.

Nuove funzionalità

  • ComponentActivity ora implementa l'interfaccia OnPictureInPictureModeChangedProvider per consentire a qualsiasi componente di ricevere eventi di modifica della modalità Picture in picture. (I9f567)
  • ComponentActivity ora implementa l'interfaccia OnMultiWindowModeChangedProvider per consentire a qualsiasi componente di ricevere eventi di modifica della modalità multi-finestra. (I62d91)

Versione 1.5.0-alpha01

26 gennaio 2022

Vengono rilasciate le funzionalità androidx.activity:activity:1.5.0-alpha01, androidx.activity:activity-compose:1.5.0-alpha01 e androidx.activity:activity-ktx:1.5.0-alpha01. La versione 1.5.0-alpha01 contiene questi commit.

Nuove funzionalità

  • ComponentActivity ora si integra con ViewModel CreationExtras, introdotto come parte di Lifecycle 2.5.0-alpha01. (Ie7e00, b/207012584)
  • ComponentDialog aggiunta, una sottoclasse di Dialog che include un OnBackPressedDispatcher che verrà chiamato quando viene premuto il pulsante Indietro del sistema quando la finestra di dialogo è visibile. È importante sottolineare che questa sottoclasse imposta anche ViewTreeOnBackPressedDispatcherOwner, consentendo alle visualizzazioni un modo generico per recuperare il supervisore corretto che sia presente in un ComponentActivity o in un ComponentDialog. (I8a1bc)
  • ComponentActivity ora implementa la nuova interfaccia di OnNewIntentProvider per consentire a qualsiasi componente di ricevere questi eventi. (If1f8b).
  • ComponentActivity ora implementa la nuova interfaccia di OnConfigurationChangedProvider per consentire a qualsiasi componente di ricevere questi eventi. (If623b)
  • ComponentActivity ora implementa la nuova interfaccia OnTrimMemoryProvider per consentire a qualsiasi componente di ricevere questi eventi. (Ia9295)

Modifiche alle API

  • Il costruttore senza parametri per ActivityResultContracts.CreateDocument è stato ritirato e sostituito con un nuovo costruttore che accetta un tipo MIME concreto (ad es. "image/png") come richiesto da Intent.ACTION_CREATE_DOCUMENT. (I2bec6)
  • L'elemento OnBackPressedDispatcherOwner associato a una vista ora può essere recuperato tramite l'ViewTreeOnBackPressedDispatcherOwner, anziché fare affidamento sulla trasmissione del Context. (I74685)

Correzioni di bug

  • È stato risolto l'arresto anomalo durante l'accesso a un ViewModel per la prima volta da un callback registerForActivityResult() o i callback a un LifecycleObserver aggiunto come parte di init di un ComponentActivity. (Ife83f).

Versione 1.4.0

Versione 1.4.0

27 ottobre 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.4.0, androidx.activity:activity-compose:1.4.0 e androidx.activity:activity-ktx:1.4.0. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

  • Ora AndroidX ComponentActivity implementa l'interfaccia MenuHost. In questo modo qualsiasi componente può aggiungere voci di menu a ActionBar aggiungendo un'istanza MenuProvider all'attività. Facoltativamente, ogni MenuProvider può essere aggiunto con un Lifecycle che controllerà automaticamente la visibilità di queste voci di menu in base allo stato Lifecycle e gestirà la rimozione di MenuProvider quando il Lifecycle viene eliminato.
  • La classe ActivityResultContract è stata riscritta in Kotlin per garantire che gli sviluppatori che scrivono contratti personalizzati in Kotlin possano definire il valore nullo corretto per le proprie classi di input e output.
  • Il corso ActivityResultContracts e i relativi contratti sono stati riscritti in Kotlin per garantire che i valori nulli siano corretti.

Versione 1.4.0-rc01

13 ottobre 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.4.0-rc01, androidx.activity:activity-compose:1.4.0-rc01 e androidx.activity:activity-ktx:1.4.0-rc01. La versione 1.4.0-rc01 contiene questi commit.

Correzioni di bug

  • ActivityResultRegistry non restituirà più un risultato a ActivityResultCallback quando la chiamata launch genera un Exception. (If4f91, b/200845664)

Versione 1.4.0-beta01

29 settembre 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.4.0-beta01, androidx.activity:activity-compose:1.4.0-beta01 e androidx.activity:activity-ktx:1.4.0-beta01. La versione 1.4.0-beta01 contiene questi commit.

Modifiche alle API

  • È stato corretto il tipo di ActivityResultContracts.OpenMultipleDocuments e ActivityResultContracts.GetMultipleContents che hanno causato l'utilizzo di un tipo di output di List<? extends Uri> quando si utilizza il codice del linguaggio di programmazione Java. (If71de)
  • Le costanti pubbliche all'interno delle classi ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult e ActivityResultContracts.RequestMultiplePermissions sono ora accessibili quando si utilizza Kotlin tramite gli oggetti Companion ora pubblici. (aosp/1832555)

Aggiornamenti alla documentazione

  • Il messaggio di ritiro per le API ora gestito dalle API Activity Result, ovvero startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions e onRequestPermissionsResult, è stato ampliato con ulteriori dettagli. (cce80f)

Versione 1.4.0-alpha02

15 settembre 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.4.0-alpha02, androidx.activity:activity-compose:1.4.0-alpha02 e androidx.activity:activity-ktx:1.4.0-alpha02. La versione 1.4.0-alpha02 contiene questi commit.

Nuove funzionalità

  • L'artefatto activity-compose ora contiene un errore lint LaunchDuringComposition che ti impedisce di chiamare il metodo launch di ActivityResultLauncher come parte della composizione, poiché la composizione deve essere priva di effetti collaterali. Utilizza le API per la gestione degli effetti collaterali. (7c2bbe, b/191347220)

Modifiche alle API

  • La classe ActivityResultContract è stata riscritta in Kotlin per garantire che gli sviluppatori che scrivono contratti personalizzati in Kotlin possano definire il valore nullo corretto per le classi di input e output. (I8a8f5).
  • La classe ActivityResultContracts e i relativi contratti sono stati riscritti in Kotlin per garantire che i valori null siano corretti. (I69802)

Versione 1.4.0-alpha01

1° settembre 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.4.0-alpha01, androidx.activity:activity-compose:1.4.0-alpha01 e androidx.activity:activity-ktx:1.4.0-alpha01. La versione 1.4.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Ora AndroidX ComponentActivity implementa l'interfaccia MenuHost. In questo modo qualsiasi componente può aggiungere voci di menu a ActionBar aggiungendo un'istanza MenuProvider all'attività. Facoltativamente, ogni MenuProvider può essere aggiunto con un Lifecycle che controllerà automaticamente la visibilità di queste voci di menu in base allo stato Lifecycle e gestirà la rimozione di MenuProvider quando il Lifecycle viene eliminato. (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)
  }

Cambiamenti del comportamento

  • ActivityResultRegistry ora genererà un IllegalStateException quando tenti di chiamare launch() su un ActivityResultLauncher che non è registrato o che non è stato registrato. (Ida75d, b/192567522)

Contributo esterno

  • Grazie dmitrilc per aver corretto un errore di battitura nella documentazione di ActivityResult. (N. 221)

Versione 1.3.1

Versione 1.3.1

4 agosto 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.1, androidx.activity:activity-compose:1.3.1 e androidx.activity:activity-ktx:1.3.1. La versione 1.3.1 contiene questi commit.

Aggiornamenti delle dipendenze

  • L'attività ora dipende da Kotlin 1.5.21.
  • La funzionalità Scrittura attività ora dipende da Scrivi 1.0.1.

Versione 1.3.0

Versione 1.3.0

28 luglio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0, androidx.activity:activity-compose:1.3.0 e androidx.activity:activity-ktx:1.3.0. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

  • Artefatto di Compose attività: l'artefatto activity-compose fornisce il metodo di estensione setContent per ospitare la UI di Jetpack Compose in un'attività e wrapper specifici di Compose per interagire con le API ComponentActivity per la gestione del pulsante Indietro del sistema e delle API Activity Result. Per ulteriori dettagli, consulta la documentazione.
  • Contratto CaptureVideo: il CaptureVideo ActivityResultContract sostituisce il contratto TakeVideo, ora deprecato, e restituisce un valore booleano che indica il successo che funziona su molte app di videocamere.
  • Monitoraggio delle visualizzazioni suggerimenti Picture in picture: gli utenti di activity-ktx ora possono utilizzare il metodo di estensione trackPipAnimationHintView su Activity per ricreare automaticamente PictureInPictureParams con la nuova posizione della vista, man mano che cambia posizione rispetto alla finestra.

Versione 1.3.0-rc02

14 luglio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-rc02, androidx.activity:activity-compose:1.3.0-rc02 e androidx.activity:activity-ktx:1.3.0-rc02. La versione 1.3.0-rc02 contiene questi commit.

Correzioni di bug

  • Ora i callback ActivityResultRegistry vengono salvati e ripristinati correttamente in modo che i callback non vengano duplicati nel SavedState. (I97816, b/191893160)

Versione 1.3.0-rc01

1 luglio 2021

androidx.activity:activity:1.3.0-rc01, androidx.activity:activity-compose:1.3.0-rc01 e androidx.activity:activity-ktx:1.3.0-rc01 vengono rilasciate senza modifiche dal giorno 1.3.0-beta02. La versione 1.3.0-rc01 contiene questi commit.

Versione 1.3.0-beta02

16 giugno 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-beta02, androidx.activity:activity-compose:1.3.0-beta02 e androidx.activity:activity-ktx:1.3.0-beta02. La versione 1.3.0-beta02 contiene questi commit.

Aggiornamento di activity-compose aggiornato in modo da dipendere da Scrivi 1.0.0-beta09. androidx.compose.ui:ui-test-junit4 ora ha una dipendenza del tempo di compilazione su activity-compose.

Versione 1.3.0-beta01

2 giugno 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-beta01, androidx.activity:activity-compose:1.3.0-beta01 e androidx.activity:activity-ktx:1.3.0-beta01. La versione 1.3.0-beta01 contiene questi commit.

Modifiche alle API

  • Il metodo @Composable registerForActivityResult() deprecato in precedenza è stato rimosso. Usa rememberLauncherForActivityResult(). (Ic39d3)

Versione 1.3.0-alpha08

18 maggio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha08, androidx.activity:activity-compose:1.3.0-alpha08 e androidx.activity:activity-ktx:1.3.0-alpha08. La versione 1.3.0-alpha08 contiene questi commit.

Nuove funzionalità

  • Il nuovo CaptureVideo ActivityResultContract restituisce un valore booleano a ActivityResultCallback che indica se il video è stato salvato correttamente nell'URI specificato. Questo sostituisce il contratto TakeVideo, ora obsoleto, in quanto le app per le fotocamere supportavano molto raramente la restituzione di una bitmap in miniatura, rendendo il risultato inutile. (Ie21f2, b/185938070)
  • È stata aggiunta una nuova API Activity#setPipAnimationHintView per aggiornare il suggerimento rettangolo di origine di PipParams ogni volta che la visualizzazione si sposta. (I9063d)

Modifiche alle API

  • La funzione rememberLauncherForActivityResult ora restituisce un'Avvio app che ritira la funzione unregister(): la registrazione e l'annullamento della registrazione dell'Avvio app vengono gestite automaticamente da rememberLauncherForActivityResult. (I2443e)

Compatibilità con Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 è compatibile solo con Compose versione 1.0.0-beta07 e successive.

Versione 1.3.0-alpha07

21 aprile 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha07, androidx.activity:activity-compose:1.3.0-alpha07 e androidx.activity:activity-ktx:1.3.0-alpha07. La versione 1.3.0-alpha07 contiene questi commit.

Correzioni di bug

  • rememberLauncherForActivityResult ora restituisce un riferimento stabile alla stessa istanza ActivityResultLauncher anche se il contratto viene modificato in seguito alle ricomposizioni. (ID2d6d)
  • L'utilizzo di versioni instabili di Fragment superiori a 1.3.0 non genererà più un falso errore di lint che ti chiede di usare 1.3.0. (aosp/1670206, b/184847092)

Versione 1.3.0-alpha06

7 aprile 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha06, androidx.activity:activity-compose:1.3.0-alpha06 e androidx.activity:activity-ktx:1.3.0-alpha06. La versione 1.3.0-alpha06 contiene questi commit.

Modifiche alle API

  • L'API registerForActivityResult() è stata rinominata rememberLauncherForActivityResult() per indicare meglio che il valore ActivityResultLauncher restituito è un oggetto gestito memorizzato per tuo conto. Se provi a chiamare unregister il valore ActivityResultLauncher restituito ora verrà visualizzato un errore. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.current e LocalActivityResultRegistryOwner.current ora restituiscono un valore nullo per determinare meglio se è disponibile nella composizione corrente. Le API che richiedono queste API, come BackHandler e rememberLauncherForActivityResult(), ora genereranno un errore più descrittivo se non viene trovato il proprietario sottostante. Ora NavHost funziona anche se non viene trovato un OnBackPressedDispatcherOwner, come nel caso dell'anteprima di NavHost. (I7d8b4)

Correzioni di bug

  • BackHandler ora intercettarà correttamente le pressioni a ritroso nel caso in cui l'attività sia STOPPED, quindi di nuovo STARTED e altri callback siano stati aggiunti con un Proprietario ciclo di vita. (I71de6, b/182284739)
  • L'utilizzo dell'estensione di metodo launch() con un elemento ActivityResultContract personalizzato che ha un input Unit non causerà più un errore NullPointerException (I76282, b/183837954)

Versione 1.3.0-alpha05

24 marzo 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha05, androidx.activity:activity-compose:1.3.0-alpha05 e androidx.activity:activity-ktx:1.3.0-alpha05. La versione 1.3.0-alpha05 contiene questi commit.

Correzioni di bug

  • In Attività 1.2.2: è stato risolto un problema nel controllo lint di InvalidFragmentVersionForActivityResult che generava un falso positivo utilizzando il frammento 1.3.1 o versioni successive. (I54da1, b/182388985)
  • Dall'attività 1.2.2: ora ComponentActivity evita un ClassNotFoundException quando avvii un Intent da un ActivityResultContract che in precedenza era tenuto come extra in un altro Intent. (Ieff05, b/182906230)

Aggiornamenti delle dipendenze

Versione 1.3.0-alpha04

10 marzo 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha04, androidx.activity:activity-compose:1.3.0-alpha04 e androidx.activity:activity-ktx:1.3.0-alpha04. La versione 1.3.0-alpha04 contiene questi commit.

Correzioni di bug

  • Da Attività 1.2.1: RequestMultiplePermissions ora restituisce sempre i risultati per tutte le autorizzazioni richieste, anziché solo per quelle che non erano state concesse in precedenza. (I50bc3, b/180884668)
  • Da Attività 1.2.1: ActivityResultRegistry ora garantisce che le richieste launch() in corso restituiscano i relativi risultati anche se unregister(), poi register() di nuovo con la stessa chiave. (I9ef34, b/181267562)
  • Scrittura attività non aggiunge più dipendenze di test al classpath del runtime. (Ifd8b3).
  • È stato risolto un problema relativo a BackHandler per cui la funzione lambda onBack impostata in precedenza veniva ancora utilizzata dopo la ricomposizione. (8eb5eb)

Versione 1.3.0-alpha03

24 febbraio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha03, androidx.activity:activity-compose:1.3.0-alpha03 e androidx.activity:activity-ktx:1.3.0-alpha03. La versione 1.3.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Ora è disponibile una funzione componibile registerForActivityResult per ottenere risultati da attività all'interno degli elementi componibili. (Ia7851, b/172690553)

Modifiche alle API

  • Ora LocalOnBackPressedDispatcherOwner ha una funzione provides che può essere utilizzata con CompositionLocalProvider, in sostituzione dell'API asProvidableCompositionLocal(). (I45d24)

Versione 1.3.0-alpha02

10 febbraio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha02, androidx.activity:activity-compose:1.3.0-alpha02 e androidx.activity:activity-ktx:1.3.0-alpha02. La versione 1.3.0-alpha02 contiene questi commit.

Correzioni di bug

  • Risolto un problema in Scrittura attività 1.3.0-alpha01 che causa un'eccezione NoSuchMethodError: No static method setContent quando si utilizza Scrittura 1.0.0-alpha12. Tutti gli utenti di Compose devono dipendere da 1.3.0-alpha02 o versioni successive. (b/179911234)

Modifiche alle API

  • L'API BackHandler può essere utilizzata per consentire a un componente componibile di intercettare il pulsante Indietro del sistema. (I58ed5, b/172154006)

Versione 1.3.0-alpha01

10 febbraio 2021

Vengono rilasciate le funzionalità androidx.activity:activity:1.3.0-alpha01, androidx.activity:activity-compose:1.3.0-alpha01 e androidx.activity:activity-ktx:1.3.0-alpha01. La versione 1.3.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Il nuovo artefatto activity-compose fornisce helper specifici per Jetpack Compose per androidx.activity API specifiche.
    • ComponentActivity.setContent è stato spostato da androidx.compose.ui.platform.setContent a androidx.activity.compose.setContent. (Icf416)

Problemi noti

  • L'utilizzo di Activity Compose 1.3.0-alpha01 e delle librerie che dipendono da questo, come androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, comporterà un'eccezione NoSuchMethodError: No static method setContent. (b/179911234)

Versione 1.2.4

Versione 1.2.4

21 luglio 2021

Vengono rilasciate le versioni androidx.activity:activity:1.2.4 e androidx.activity:activity-ktx:1.2.4. La versione 1.2.4 contiene questi commit.

Correzioni di bug

  • Da Attività 1.3.0-rc02: i callback ActivityResultRegistry vengono ora salvati e ripristinati correttamente in modo che i callback non vengano duplicati nello stato savedState. (I97816, b/191893160)

Versione 1.2.3

Versione 1.2.3

5 maggio 2021

Vengono rilasciate le versioni androidx.activity:activity:1.2.3 e androidx.activity:activity-ktx:1.2.3. La versione 1.2.3 contiene questi commit.

Correzioni di bug

  • L'utilizzo dell'estensione di metodo launch() con un elemento ActivityResultContract personalizzato che ha un input Unit non causerà più un errore NullPointerException (I76282, b/183837954)
  • È stato corretto un errore di falso positivo lint che indica di utilizzare Fragment 1.3.0 quando si utilizza una build snapshot, alpha, beta o RC di una versione più recente di Fragments. (f4a57e, b/184847092)

Versione 1.2.2

Versione 1.2.2

24 marzo 2021

Vengono rilasciate le versioni androidx.activity:activity:1.2.2 e androidx.activity:activity-ktx:1.2.2. La versione 1.2.2 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema nel controllo del lint di InvalidFragmentVersionForActivityResult che generava un falso positivo utilizzando Frammento 1.3.1 o versioni successive. (I54da1, b/182388985)
  • ComponentActivity ora evita un ClassNotFoundException quando avvii un Intent da un ActivityResultContract che in precedenza era trattenuto come extra in un altro Intent. (Ieff05, b/182906230)

Aggiornamenti delle dipendenze

Versione 1.2.1

Versione 1.2.1

10 marzo 2021

Vengono rilasciate le versioni androidx.activity:activity:1.2.1 e androidx.activity:activity-ktx:1.2.1. La versione 1.2.1 contiene questi commit.

Correzioni di bug

  • Ora RequestMultiplePermissions restituisce sempre i risultati per tutte le autorizzazioni richieste, anziché solo per quelle che non sono state concesse in precedenza. (I50bc3, b/180884668)
  • ActivityResultRegistry ora garantisce che le richieste launch() in corso restituiscano i relativi risultati anche se unregister(), quindi register() di nuovo con la stessa chiave. (I9ef34, b/181267562)

Versione 1.2.0

Versione 1.2.0

10 febbraio 2021

Vengono rilasciate le versioni androidx.activity:activity:1.2.0 e androidx.activity:activity-ktx:1.2.0. La versione 1.2.0 contiene questi commit.

Modifiche principali dalla versione 1.1.0

  • API dei risultati delle attività: ora ComponentActivity fornisce un valore ActivityResultRegistry che ti consente di gestire i flussi startActivityForResult()+onActivityResult() e requestPermissions()+onRequestPermissionsResult() senza eseguire l'override dei metodi nell'attività o nel frammento, offre una maggiore sicurezza dei tipi tramite ActivityResultContract e fornisce hook per testare questi flussi. Consulta la sezione Come ottenere un risultato da un'attività aggiornata.
  • ContextAware: ComponentActivity ora implementa ContextAware, consentendoti di aggiungere una o più istanze OnContextAvailableListener che riceveranno un callback prima della base Activity.onCreate().

    • Un'estensione Kotlin in sospensione withContextAvailable() ti consente di eseguire un blocco senza sospensione quando il contesto diventa disponibile e restituisce un risultato.
    • Questa API viene utilizzata da FragmentActivity in Frammento 1.3.0 per ripristinare lo stato di FragmentManager. Tutti i listener aggiunti alle sottoclassi di FragmentActivity verranno eseguiti dopo quel listener.
    • Questa API è utilizzata da AppCompatActivity in AppCompat 1.3.0-alpha02 o versioni successive. Tutti i listener aggiunti alle sottoclassi di AppCompatActivity verranno eseguiti dopo quel listener.
  • Assistenza ViewTree: ComponentActivity ora supporta le API ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) e ViewTreeSavedStateRegistryOwner aggiunte in Ciclo di vita 2.3.0 e SavedState 1.1.0; in questo modo, restituirà l'Attività come LifecycleOwner, ViewModelStoreOwner e SavedStateRegistryOwner per tutte le viste aggiunte direttamente a ComponentActivity.

  • reportFullyDrawn() Backport: il metodo Activity di reportFullyDrawn() è stato sottoposto a backport in ComponentActivity per funzionare a tutti i livelli dell'API, correggendo un arresto anomalo nell'API 19 e aggiungendo il tracciamento per questo metodo per tutti i livelli dell'API.

Versione 1.2.0-rc01

16 dicembre 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-rc01 e androidx.activity:activity-ktx:1.2.0-rc01. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • Ora ActivityResultRegistry ripristina sempre lo stato esatto salvato. (Idd56b)
  • Aggiungi tracciamento a ComponentActivity.reportFullyDrawn (Ic7632)

Contributo esterno

  • ComponentActivity ora esegue l'override di reportFullyDrawn(), consentendo di chiamarlo a tutti i livelli API e correggendo un arresto anomalo quando si chiama questo metodo senza l'autorizzazione di sistema appropriata sui dispositivi API 19. Grazie Simon Schiller! (b/163239764, #103)

Versione 1.2.0-beta02

2 dicembre 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-beta02 e androidx.activity:activity-ktx:1.2.0-beta02. La versione 1.2.0-beta02 contiene questi commit.

Correzioni di bug

  • Risolto un problema per cui l'API Activity Result non attende che il ciclo di vita arrivi a STARTED prima di fornire i risultati quando viene registrata con un Lifecycle. (I109ea)

Contributo esterno

  • È stata aggiornata la documentazione relativa a launch() per far notare esplicitamente che può generare un ActivityNotFoundException. Grazie Michał Zieliński. (aosp/1493580)

Versione 1.2.0-beta01

1° ottobre 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-beta01 e androidx.activity:activity-ktx:1.2.0-beta01. La versione 1.2.0-beta01 contiene questi commit.

Correzioni di bug

  • Ora ActivityResultRegistry genera numeri interi in modo casuale finché non ne trova uno che non è allocato per essere utilizzato come codice di richiesta register(), evitando così il possibile overflow di numeri interi causato dall'incremento dei codici di richiesta. (b/168779518)

  • Gli osservatori Lifecycle vengono rimossi correttamente quando chiami unregister() su ActivityResultLauncher. (b/165608393)

Cambiamenti del comportamento

  • ActivityResultRegistry ora genera un IllegalStateException quando tenti di chiamare register() con un LifecycleOwner il cui Lifecycle ha già raggiunto STARTED. (b/165435866)

Documentazione aggiornata

  • La documentazione di ContextAware rimanda a LifecycleOwner per evidenziare i callback Lifecycle come luogo appropriato per gli eventi di creazione e eliminazione. (aosp/1414152).

Versione 1.2.0-alpha08

19 agosto 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha08 e androidx.activity:activity-ktx:1.2.0-alpha08. La versione 1.2.0-alpha08 contiene questi commit.

Nuove funzionalità

  • ComponentActivity ora implementa ContextAware, consentendoti di aggiungere una o più istanze OnContextAvailableListener che riceveranno un callback prima della base Activity.onCreate(). (b/161390636)
    • Un'estensione Kotlin in sospensione withContextAvailable() ti consente di eseguire un blocco senza sospensione quando il contesto diventa disponibile e restituisce un risultato. (I8290c)
    • Questa API viene utilizzata da FragmentActivity in Fragment 1.3.0-alpha08 per ripristinare lo stato di FragmentManager. Tutti i listener aggiunti alle sottoclassi di FragmentActivity verranno eseguiti dopo quel listener. (I513da)
    • Questa API è utilizzata da AppCompatActivity in AppCompat 1.3.0-alpha02. Tutti i listener aggiunti alle sottoclassi di AppCompatActivity verranno eseguiti dopo quel listener. (I513da)

Correzioni di bug

  • È stato risolto un problema relativo al controllo Lint di ActivityResultFragmentVersionDetector che ne causava l'interruzione durante l'utilizzo di Lint 27.1.0 o versioni successive. (b/162155191)

Versione 1.2.0-alpha07

22 luglio 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha07 e androidx.activity:activity-ktx:1.2.0-alpha07. La versione 1.2.0-alpha07 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto un nuovo controllo lint di InvalidFragmentVersionForActivityResult che verifica che utilizzi Fragment 1.3.0-alpha07 quando utilizzi l'API Activity Result, per evitare arresti anomali di runtime a causa di problemi di "codice di richiesta non valido" e richieste di autorizzazione non funzionanti causate dall'utilizzo di versioni precedenti di Fragments. (b/152554847)

Contributo esterno

  • È stato corretto un ArrayIndexOutOfBoundsException durante l'analisi dei risultati per il contratto Risultati attività RequestPermission. (I8f9e3, b/161057605)

Versione 1.2.0-alpha06

10 giugno 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha06 e androidx.activity:activity-ktx:1.2.0-alpha06. La versione 1.2.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Ora puoi eseguire la destrutturazione della classe ActivityResult in Kotlin per accedere direttamente a requestCode e intent. (b/157212935)
  • ActivityResultLauncher ora ti consente di recuperare il ActivityResultContract utilizzato per registrare Avvio app. (b/156875743)

Modifiche alle API

  • Modifica che provoca un errore: il metodo invoke() su ActivityResultRegistry è stato rinominato in onLaunch(). (b/157496491)
  • Se non viene restituito alcun risultato, il contratto OpenMultipleDocuments ora restituisce un elenco vuoto anziché null al callback registrato. (b/157348014)

Versione 1.2.0-alpha05

20 maggio 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha05 e androidx.activity:activity-ktx:1.2.0-alpha05. La versione 1.2.0-alpha05 contiene questi commit.

Nuove funzionalità

Modifiche alle API

  • Il contratto TakePicture ora restituisce un boolean che indica l'esito positivo anziché una miniatura Bitmap, poiché questa funzionalità era supportata molto raramente dalle app fotocamera durante la scrittura dell'immagine nel Uri fornito. (b/154302879)
  • Le estensioni invoke() su ActivityResultLauncher sono state rimosse a favore dell'utilizzo esplicito di launch() per indicare meglio che si tratta di operazioni asincrone. Le estensioni Kotlin per launch sono state aggiunte al pacchetto androidx.activity.result per ActivityResultLauncher<Void> e ActivityResultLauncher<Unit> in modo da non dover trasferire rispettivamente null o Unit, eseguendo il mirroring di questo comportamento dalle estensioni invoke() precedenti. (aosp/1304674, aosp/1304675)
  • I metodi IntentSenderRequest.Builder per setFlagsMask() e setFlagsValues() sono stati combinati in un singolo metodo setFlags(). (aosp/1302111)

Correzioni di bug

  • Durante la registrazione di un ActivityResultCallback con un LifecycleOwner, è stato risolto un problema per cui il callback veniva attivato prima che lo stato raggiungesse STARTED. (aosp/1309744)

Cambiamenti del comportamento

  • L'ActivityResultRegistry ora genera codici di richiesta a partire da 0xFFFF anziché da 0, evitando sovrapposizioni quando utilizzi startActivityForResult() o requestPermissions() in un'attività. (aosp/1302324)

Versione 1.2.0-alpha04

29 aprile 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha04 e androidx.activity:activity-ktx:1.2.0-alpha04. La versione 1.2.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Aggiunto un contratto che può chiamare startIntentSenderForResult alle API ActivityResult. (b/153007517)

Modifiche alle API

  • Il metodo prepareCall() è stato rinominato in registerForActivityResult(), sia su ComponentActivity qui che in Framment 1.3.0-alpha04. (aosp/1278717)
  • I contratti GetContents, OpenDocuments e RequestPermissions sono stati rinominati rispettivamente in GetMultipleContents, OpenMultipleDocuments e RequestMultiplePermissions. (aosp/1280161)
  • Ora ComponentActivity implementa l'interfaccia ActivityResultRegisteryOwner. (aosp/1290888)
  • - Le API startActivityForResult()/onActivityResult() e onRequestPermissionsResult() su ComponentActivity sono state deprecate. Usa le API Activity Result. (b/154751887)

Correzioni di bug

  • Quando utilizzi i contratti GetMultipleContents e OpenMultipleDocuments e selezioni un singolo articolo, ora viene restituito correttamente al callback. (b/152941153)

Versione 1.2.0-alpha03

1° aprile 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha03 e androidx.activity:activity-ktx:1.2.0-alpha03. La versione 1.2.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Sono stati aggiunti i contratti TakeVideo, PickContact, GetContent, GetContents, OpenDocument, OpenDocuments, OpenDocumentTree e CreateDocument all'insieme di contratti predefiniti forniti da ActivityResultContracts. (aosp/1262482, aosp/1266916, aosp/1268960)
  • Le API Activity Result ora supportano l'avvio di un'attività per i risultati con un ActivityOptionsCompat facoltativo. (b/151860054)

Modifiche alle API

  • Il contratto TakePicture ora richiede un input Uri per la posizione in cui deve essere archiviata l'immagine. Il contratto precedente che non richiede alcun input è stato rinominato in TakePicturePreview. (aosp/1262482)
  • Il metodo registerActivityResultCallback() su ActivityResultRegistry è stato rinominato in register(). (aosp/1267621)
  • Il metodo dispose() su ActivityResultLauncher è stato rinominato in unregister() e il metodo unregisterResultCallback() su ActivityResultRegistry è stato rimosso. (aosp/1267621)
  • Il metodo createIntent() di ActivityResultContact ora richiede un Context oltre all'input per consentire la creazione di intent espliciti. (aosp/1238800)
  • Ora un ActivityResultContract può eseguire l'override di getSynchronousResult() per ottenere un risultato senza chiamare startActivityForResult. Viene utilizzato dai contratti RequestPermission e RequestPermissions per assegnare correttamente lo stato "concesso" se le autorizzazioni richieste sono già state concesse. (b/151110799)
  • Il contratto Dial precedentemente disponibile è stato rimosso in quanto Intent non è destinato all'utilizzo con startActivityForResult(). (aosp/1266916)
  • Molte delle API Activity Result che non intendevano essere estese ora sono final. Sono inclusi getActivityResultRegistry(), i metodi prepareCall(), tutti i metodi di ActivityResultRegistry tranne invoke() e una serie di contratti predefiniti che non supportano gli extra facoltativi. (b/152439361)

Correzioni di bug

  • È stato corretto un NullPointerException in ActivityResultRegistry durante il tentativo di fornire risultati a un callback che non è stato ancora registrato nuovamente dopo una modifica alla configurazione; ora ActivityResultRegistry conserva questi risultati in attesa e li invia quando il callback viene registrato nuovamente. (b/152137004)

Versione 1.2.0-alpha02

18 marzo 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha02 e androidx.activity:activity-ktx:1.2.0-alpha02. La versione 1.2.0-alpha02 contiene questi commit.

Nuove funzionalità

  • ActivityResultRegistry: ora ComponentActivity fornisce un ActivityResultRegistry che ti consente di gestire i flussi startActivityForResult()+onActivityResult() e requestPermissions()+onRequestPermissionsResult() senza eseguire l'override dei metodi nell'Attività o Fragment, offre una maggiore sicurezza dei tipi tramite ActivityResultContract e fornisce hook per testare questi flussi. Consulta la sezione Come ottenere un risultato da un'attività aggiornata. (b/125158199)

Versione 1.2.0-alpha01

4 marzo 2020

Vengono rilasciate le versioni androidx.activity:activity:1.2.0-alpha01 e androidx.activity:activity-ktx:1.2.0-alpha01. La versione 1.2.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per l'API ViewTreeLifecycleOwner.get(View) aggiunta nel Ciclo di vita 2.3.0-alpha01 in modo da restituire l'Attività come LifecycleOwner per tutte le viste aggiunte direttamente all'Attività. (aosp/1182955).

Correzioni di bug

  • È stata corretta una regressione introdotta nell'attività 1.1.0 durante l'esecuzione su versioni precedenti della piattaforma in cui onBackPressed() causava un IllegalStateException a causa di un bug in android.app.FragmentManager. (b/146290338)

Versione 1.1.0

Versione 1.1.0

22 gennaio 2020

Viene rilasciato androidx.activity:activity:1.1.0. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Integrazione del ciclo di vita ViewModel SavedState: SavedStateViewModelFactory è ora il valore di fabbrica predefinito utilizzato quando si utilizza by viewModels(), il costruttore ViewModelProvider oppure ViewModelProviders.of() con ComponentActivity o le relative sottoclassi.

Versione 1.1.0-rc03

4 dicembre 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-rc03 e androidx.activity:activity-ktx:1.1.0-rc03. La versione 1.1.0-rc03 contiene questi commit.

Modifiche alle dipendenze

  • L'attività ora dipende dal ciclo di vita 2.2.0-rc03 e da Lifecycle ViewModel SavedState 1.0.0-rc03.

Versione 1.1.0-rc02

7 novembre 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-rc02 e androidx.activity:activity-ktx:1.1.0-rc02. La versione 1.1.0-rc02 contiene questi commit.

Modifiche alle dipendenze

  • L'attività ora dipende dal ciclo di vita 2.2.0-rc02.

Versione 1.1.0-rc01

23 ottobre 2019

androidx.activity:activity:1.1.0-rc01 e androidx.activity:activity-ktx:1.1.0-rc01 vengono rilasciate senza modifiche a partire dal giorno 1.1.0-beta01. La versione 1.1.0-rc01 contiene questi commit.

Versione 1.1.0-beta01

9 ottobre 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-beta01 e androidx.activity:activity-ktx:1.1.0-beta01. La versione 1.1.0-beta01 contiene questi commit.

Modifiche alle dipendenze

  • L'attività ora dipende dalla versione stabile di SavedState 1.0.0.

Versione 1.1.0-alpha03

5 settembre 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-alpha03 e androidx.activity:activity-ktx:1.1.0-alpha03. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • L'attività ora dipende dalla versione stabile di Core 1.1.0.

Correzioni di bug

Versione 1.1.0-alpha02

7 agosto 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-alpha02 e androidx.activity:activity-ktx:1.1.0-alpha02. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • SavedStateViewModelFactory è ora il valore di fabbrica predefinito utilizzato quando si utilizza by viewModels(), il costruttore ViewModelProvider oppure ViewModelProviders.of() con un ComponentActivity (b/135716331)

Versione 1.1.0-alpha01

2 luglio 2019

Vengono rilasciate le versioni androidx.activity:activity:1.1.0-alpha01 e androidx.activity:activity-ktx:1.1.0-alpha01. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • activity ora dipende dal ciclo di vita 2.2.0-alpha02. (aosp/1007817)
  • activity-ktx ha aggiunto una dipendenza su lifecycle-runtime-ktx. Non devi più aggiungerla esplicitamente alle dipendenze quando utilizzi activity-ktx o le librerie che dipendono da activity-ktx (ad esempio fragment-ktx). (aosp/987162)

Versione 1.0.0

Versione 1.0.0

5 settembre 2019

Vengono rilasciate le versioni androidx.activity:activity:1.0.0 e androidx.activity:activity-ktx:1.0.0. I commit inclusi in questa versione sono disponibili qui.

Funzionalità principali di 1.0.0

  • ComponentActivity: ComponentActivity funge da nuova classe base per FragmentActivity in Fragment 1.1.0 e, di conseguenza, AppCompatActivity in AppCompat 1.1.0.
  • activity-ktx: il modulo activity-ktx include un'estensione della proprietà Kotlin by viewModels per accedere ai ViewModels. Questo modulo viene incluso automaticamente quando includi fragment-ktx di Frammento 1.1.0.
  • OnBackPressedDispatcher: come alternativa componibile alla sostituzione di onBackPressed(), ora puoi registrare un elemento OnBackPressedCallback da qualsiasi LifecycleOwner (ad esempio un frammento) per intercettare gli eventi del pulsante Indietro del sistema. Una versione lambda con ricevitore addCallback è stata aggiunta a activity-ktx. Per ulteriori dettagli, consulta Documentazione personalizzata per la navigazione a ritroso.
  • Ritiro di onKeepCustomNonConfigurationInstance: le API onRetainCustomNonConfigurationInstance() e le relative API getLastCustomNonConfigurationInstance() sono state deprecate. Ti consigliamo vivamente di utilizzare i ViewModel per archiviare lo stato di non configurazione, in quanto offrono una soluzione componibile adatta a qualsiasi ViewModelStoreOwner che rende chiara la proprietà degli oggetti conservati e fornisce un callback onCleared() per la pulizia delle risorse quando l'attività viene infine eliminata.

Versione 1.0.0-rc01

2 luglio 2019

androidx.activity:activity:1.0.0-rc01 e androidx.activity:activity-ktx:1.0.0-rc01 vengono rilasciate senza modifiche a partire dal giorno 1.0.0-beta01. I commit inclusi in questa versione sono disponibili qui.

Versione 1.0.0-beta01

5 giugno 2019

androidx.activity::activity:1.0.0-beta01 e androidx.activity:activity-ktx:1.0.0-beta01 vengono rilasciate senza modifiche a partire dal giorno 1.0.0-alpha08. I commit inclusi in questa versione sono disponibili qui.

Versione 1.0.0-alpha08

7 maggio 2019

Vengono rilasciate le versioni androidx.activity:activity:1.0.0-alpha08 e androidx.activity:activity-ktx:1.0.0-alpha08. I commit inclusi in questa versione sono disponibili qui.

Modifiche alle API

  • Modifica che interrompe la modifica: i metodi addOnBackPressedCallback e removeOnBackPressedCallback precedentemente deprecati su ComponentActivity sono stati rimossi. aosp/953857
  • I metodi setEnabled() e isEnabled() di OnBackPressedCallback sono ora definitivi. b/131416833
  • Il metodo remove() di OnBackPressedCallback è ora definitivo. aosp/952720
  • Ora in OnBackPressedDispatcher sono disponibili costruttori pubblici che ti consentono di creare le tue istanze per i test e così via. aosp/953431
  • onBackPressed() per ComponentActivity è ora contrassegnato esplicitamente come @MainThread aosp/952721

Correzioni di bug

  • È stato corretto un ConcurrentModificationException durante la chiamata di remove() dal metodo handleOnBackPressed() di un elemento OnBackPressedCalback aggiunto con un LifecycleOwner. B/131765095

Versione 1.0.0-alpha07

25 aprile 2019

Vengono rilasciate le versioni androidx.activity:activity:1.0.0-alpha07 e androidx.activity:activity-ktx:1.0.0-alpha07. I commit inclusi in questa versione sono disponibili qui.

Modifiche alle API

Questa release apporta modifiche significative alla gestione di onBackPressed(). Per ulteriori dettagli, consulta la documentazione aggiornata relativa al retro personalizzato.

  • I metodi per OnBackPressedCallback e OnBackPressedDispatcher sono stati contrassegnati come @MainThread. (aosp/943813)
  • Il metodo handleOnBackPressed() non restituisce più boolean. Al contrario, OnBackPressedCallback ora è una classe astratta che può essere abilitata o disabilitata, solo quando il nuovo metodo isEnabled() restituisce true handleOnBackPressed() e in cui devi gestire il pulsante indietro. (aosp/944518)
  • I metodi addCallback di OnBackPressedDispatcher non restituiscono più un'istanza Cancellable. OnBackPressedCallback ora contiene un metodo remove() che soddisfa questa funzionalità, permettendoti di chiamare remove() durante handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • activity-ktx ora contiene un callback con ambito ricevitore per addCallback che accetta un lamdba che implementa handleOnBackPressed() e ha accesso a isEnabled e remove() (aosp/944520)

Versione 1.0.0-alpha06

3 aprile 2019

Vengono rilasciate le versioni androidx.activity:activity:1.0.0-alpha06 e androidx.activity:activity-ktx:1.0.0-alpha06. I commit inclusi in questa versione sono disponibili qui.

Modifiche alle API

  • ComponentActivity ora contiene un secondo costruttore che prende un @LayoutRes int, che sostituisce il precedente comportamento di annotazione della tua classe AppCompatActivity con @ContentView. Questo approccio funziona sia nei moduli delle app che delle librerie. (b/128352521)
  • Le API correlate a OnBackPressedCallback su ComponentActivity sono state deprecate a favore del nuovo OnBackPressedDispatcher, recuperabile tramite getOnBackPressedDispatcher(). (aosp/922523)
  • I metodi per aggiungere un nuovo OnBackPressedCallback all'elemento OnBackPressedDispatcher ora restituiscono un oggetto Cancellable, consentendo la rimozione del callback senza richiedere un riferimento esplicito a OnBackPressedDispatcher. (aosp/922523)
  • L'aggiunta di un OnBackPressedCallback con un LifecycleOwner associato ora comporta l'aggiunta e la rimozione dell'oggetto OnBackPressedCallback quando il ciclo di vita viene avviato e arrestato, rispettivamente. (aosp/922523)

Versione 1.0.0-alpha05

13 marzo 2019

Vengono rilasciate le funzionalità androidx.activity:activity:1.0.0-alpha05 e androidx.activity:activity-ktx:1.0.0-alpha05. L'elenco completo dei commit inclusi in questa release è disponibile qui.

Nuove funzionalità

  • Ora vengono memorizzate nella cache @ContentView ricerche di annotazioni (b/123709449)

Versione 1.0.0-alpha04

30 gennaio 2019

Vengono rilasciati androidx.activity:activity 1.0.0-alpha04e androidx.activity:activity-ktx 1.0.0-alpha04.

Nuove funzionalità

  • Aggiunto il supporto per l'annotazione della classe @ContentView che consente di indicare quale file XML di layout deve essere gonfiato in alternativa all'utilizzo di setContentView(). (aosp/837619)

Modifiche alle API

  • È stata aggiunta una nota che indica che getViewModelStore() non deve essere sostituito e sarà reso definitivo in una release futura. Invia una richiesta di funzionalità se stai eseguendo l'override di questo metodo. (aosp/837619)

Correzioni di bug

  • Il modulo activity ora dipende dalla versione 2.1.0-alpha02 di ViewModel per soddisfare la dipendenza del modulo activity-ktx.

Versione 1.0.0-alpha03

17 dicembre 2018

Viene rilasciato androidx.activity 1.0.0-alpha03.

Nuove funzionalità

  • ComponentActivity ora implementa BundleSavedStateRegistryOwner e dipende dalla libreria SavedState appena rilasciata [aosp/815133]
  • ComponentActivity ora funziona in merito a un bug del framework Android che causava la divulgazione dell'ultima vista mirata [b/37122102]

Versione 1.0.0-alpha02

3 dicembre 2018

Modifiche alle API

Versione 1.0.0-alpha01

5 novembre 2018

androidx.activity 1.0.0-alpha01 introduce ComponentActivity, una nuova classe base delle FragmentActivity e AppCompatActivity esistenti.

Nuove funzionalità

  • Ora puoi registrare un OnBackPressedCallback tramite addOnBackPressedCallback per ricevere callback onBackPressed() senza dover sostituire il metodo nella tua attività.
  • È stato aggiunto un nuovo delegato della proprietà Kotlin by viewModels() per il recupero di ViewModel da un ComponentActivity.
  • Gli eventi di input in sospeso (come i clic) vengono ora annullati in onStop().

Modifiche alle API

  • L'implementazione di LifecycleOwner e ViewModelStoreOwner è stata spostata da FragmentActivity a ComponentActivity.
  • L'API onRetainCustomNonConfigurationInstance è stata deprecata. Utilizza un ViewModel per l'archiviazione degli oggetti che devono rimanere attivi nelle modifiche di configurazione.