Attività
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
13 novembre 2024 | 1.9.3 | - | 1.10.0-beta01 | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da Activity, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
Alla moda
dependencies { def activity_version = "1.9.2" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.2" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.10
Versione 1.10.0-beta01
13 novembre 2024
androidx.activity:activity:1.10.0-beta01
, androidx.activity:activity-compose:1.10.0-beta01
e androidx.activity:activity-ktx:1.10.0-beta01
vengono rilasciati senza modifiche dall'ultima versione alpha. La versione 1.10.0-beta01 contiene questi commit.
Versione 1.10.0-alpha03
30 ottobre 2024
androidx.activity:activity:1.10.0-alpha03
, androidx.activity:activity-compose:1.10.0-alpha03
e androidx.activity:activity-ktx:1.10.0-alpha03
vengono rilasciati. La versione 1.10.0-alpha03 contiene questi commit.
Modifiche all'API
- È stato aggiunto un nuovo elemento
LocalActivity
locale della composizione che fornisce ilActivity
per l'ambito corrente, eliminando la necessità per gli sviluppatori di ottenere unActivity
dalLocalContext
. Inoltre, è dotato di una nuova regola di lint che controlla quandoLocalContext
viene trasmesso in modo errato aActivity
. (I7746a, b/283009666)
Correzioni di bug
- Da Attività
1.9.3
:PredictiveBackHandler
non attiverà più il suo callback dopo la disattivazione dell'handler. In questo modo verrà risolto un problema per cuiNavHost
da Navigation Compose generava unIndexOutOfBoundsException
. (I3f75e, b/365027664, b/340202286)
Aggiornamento delle dipendenze
- La composizione delle attività ora dipende da Compose Runtime 1.7.0 (I7746a, b/283009666)
Versione 1.10.0-alpha02
4 settembre 2024
androidx.activity:activity:1.10.0-alpha02
, androidx.activity:activity-compose:1.10.0-alpha02
e androidx.activity:activity-ktx:1.10.0-alpha02
vengono rilasciati. La versione 1.10.0-alpha02 contiene questi commit.
Modifiche al comportamento
- I contratti ResultActivity
PickVisualMedia
ePickMultipleVisualMedia
che attivano il selettore di foto non delegheranno più direttamente a Google Play Services se il selettore di foto di sistema non è disponibile, ma utilizzeranno l'azione pubblicaACTION_SYSTEM_FALLBACK_PICK_IMAGES
e gli extra correlati per fornire un'esperienza coerente del selettore di foto agli OEM e alle app di sistema come alternativa. Ciò non dovrebbe influire sull'esperienza utente dei dispositivi con una versione recente di Google Play Services. (I3513d)
Correzioni di bug
- È stato rimosso il riepilogo manuale dell'accesso alle nuove API di piattaforma, poiché questo avviene automaticamente tramite la definizione del modello API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I clienti che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (I9496c, b/345472586)
- Da Attività
1.9.2
: è stato risolto un problema per cui l'API Activity ComposePredictiveBackHandler
continuava a gestire il gesto Indietro di sistema nel frame in cui era disabilitata, il che poteva comportare che librerie come Navigation Compose gestissero Indietro anche con una pila Indietro vuota, con conseguente lancio di unIndexOutOfBoundsException
. (Ie3301, b/340202286) - Da Attività
1.9.1
: è stato risolto un problema conPredictiveBackHandler
per cui, dopo il ripristino del sistema, il tentativo di eseguireonBackPressed
daOnBackPressedDispatcher
non andava a buon fine. (I5f1f8)
Versione 1.10.0-alpha01
26 giugno 2024
androidx.activity:activity:1.10.0-alpha01
, androidx.activity:activity-compose:1.10.0-alpha01
e androidx.activity:activity-ktx:1.10.0-alpha01
vengono rilasciati. Questa versione è sviluppata in un ramo interno.
Nuove funzionalità
- È stato aggiunto il supporto per le nuove funzionalità di
PhotoPicker
introdotte in Android V, tra cui la possibilità di scegliere le immagini in ordine e di scegliere quale scheda (album o immagini) deve essere visibile inizialmente.
Versione 1.9
Versione 1.9.3
16 ottobre 2024
androidx.activity:activity:1.9.3
, androidx.activity:activity-compose:1.9.3
e androidx.activity:activity-ktx:1.9.3
vengono rilasciati. La versione 1.9.3 contiene questi commit.
Correzioni di bug
PredictiveBackHandler
non attiverà più il suo callback dopo la disattivazione del gestore. In questo modo verrà risolto un problema per cuiNavHost
da Navigation Compose generava unIndexOutOfBoundsException
. (I3f75e, b/340202286)
Versione 1.9.2
4 settembre 2024
androidx.activity:activity:1.9.2
, androidx.activity:activity-compose:1.9.2
e androidx.activity:activity-ktx:1.9.2
vengono rilasciati. La versione 1.9.2 contiene questi lthcocommits.
Correzioni di bug
- È stato risolto un problema per cui l'API Activity Compose
PredictiveBackHandler
continuava a gestire il gesto Indietro di sistema nel frame in cui era disabilitata, il che poteva comportare che librerie come Navigation Compose gestissero Indietro anche con una pila Indietro vuota, generando unIndexOutOfBoundsException
. (Ie3301, b/340202286)
Versione 1.9.1
24 luglio 2024
androidx.activity:activity:1.9.1
, androidx.activity:activity-compose:1.9.1
e androidx.activity:activity-ktx:1.9.1
vengono rilasciati. La versione 1.9.1 contiene questi commit.
Correzioni di bug
- È stato risolto un problema con
PredictiveBackHandler
per cui, dopo il ripristino del sistema, il tentativo di eseguireonBackPressed
daOnBackPressedDispatcher
non andava a buon fine. (I5f1f8)
Versione 1.9.0
17 aprile 2024
androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
e androidx.activity:activity-ktx:1.9.0
vengono rilasciati. La versione 1.9.0 contiene questi commit.
Modifiche importanti dalla versione 1.8.0
ComponentActivity
ora implementaOnUserLeaveHintProvider
per consentire ai componenti di eseguire callback per gli eventionUserLeaveHint
.- Le API
OnBackPressedCallback
,BackHandler
ePredictiveBackHandler
ora avvisano quando viene chiamataonBackPressedDispatcher.onBackPressed()
durante la gestione del gesto Indietro, in quanto questo interrompe sempre l'animazione di Gesto Indietro predittivo. Per maggiori dettagli, consulta la guida alle best practice. - Il resto delle API Attività è stato riscritto in Kotlin e tutte le estensioni precedentemente disponibili in
activity-ktx
sono state spostate inactivity
.activity-ktx
è ora completamente vuoto.- Nell'ambito della conversione di
ActivityResultLauncher
in Kotlin, il metodogetContract
è ora una proprietà Kotlin astratta. Si tratta di una modifica compatibile con i binari, ma che comporta una rottura del codice sorgente se l'implementazione diActivityResultLauncher
è scritta in Kotlin.
- Nell'ambito della conversione di
Versione 1.9.0-rc01
3 aprile 2024
androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
e androidx.activity:activity-ktx:1.9.0-rc01
vengono rilasciati. La versione 1.9.0-rc01 contiene questi commit.
Aggiornamento delle dipendenze
- Ora l'attività dipende da Profile Installer 1.3.1.
Versione 1.9.0-beta01
20 marzo 2024
androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
e androidx.activity:activity-ktx:1.9.0-beta01
vengono rilasciati. La versione 1.9.0-beta01 contiene questi commit.
Correzioni di bug
- È stata corretta una regressione del rendimento all'avvio dell'attività introdotta nell'attività
1.9.0-alpha02
causata dalla chiamata diOnBackPressedDispatcher
nell'ambito della creazione dell'attività. (Ie75e3)
Versione 1.9.0-alpha03
7 febbraio 2024
androidx.activity:activity:1.9.0-alpha03
, androidx.activity:activity-compose:1.9.0-alpha03
e androidx.activity:activity-ktx:1.9.0-alpha03
vengono rilasciati. La versione 1.9.0-alpha03 contiene questi commit.
Avviso lint
- Le API
OnBackPressedCallback
,BackHandler
ePredictiveBackHandler
ora avvisano quando viene chiamataonBackPressedDispatcher.onBackPressed()
durante la gestione del gesto Indietro, in quanto questo interrompe sempre l'animazione di Gesto Indietro predittivo. Per maggiori dettagli, consulta la guida alle best practice. (1e4222, 2c950d, b/287505200)
Correzioni di bug
- Se viene inviato un evento Indietro dal sistema avviato durante un Gesto Indietro predittivo già in esecuzione, il Gesto Indietro predittivo in esecuzione viene annullato e il nuovo evento Indietro prende il sopravvento per avviare un nuovo Gesto Indietro predittivo. (I3482e)
- È stato corretto un arresto anomalo quando si accede a
onBackPressedDispatcher
da unComponentActivity
per la prima volta da un thread in background. Ora puoi accedere alonBackPressedDispatcher
su qualsiasi thread. (I79955)
Versione 1.9.0-alpha02
24 gennaio 2024
androidx.activity:activity:1.9.0-alpha02
, androidx.activity:activity-compose:1.9.0-alpha02
e androidx.activity:activity-ktx:1.9.0-alpha02
vengono rilasciati. La versione 1.9.0-alpha02 contiene questi commit.
Conversioni Kotlin
ActivityResultRegistry
è stato riscritto in Kotlin. In questo modo, la nullabilità dei generici del contratto passati aregister
verrà trasmessa correttamente aActivityResultLauncher
restituito. (I121f0)ActivityResult
è stato riscritto in Kotlin. Le estensioni KotlinActivityResult
che supportano la scomposizione nei campiresultCode
edata
sono state spostate daactivity-ktx
aactivity
. (I0565a)- Le estensioni Kotlin di
by viewModels()
perComponentActivity
etrackPipAnimationHintView
sono state spostate daactivity-ktx
aactivity
. L'elementoactivity-ktx
è ora completamente vuoto. (I0a444)
Correzioni di bug
- L'API
enableEdgeToEdge
ora disegna intorno a eventuali ritagli del display. (a3644b, b/311173461) - Da Attività
1.8.2
: è stato corretto l'extra passato aACTION_SYSTEM_FALLBACK_PICK_IMAGES
del contratto dell'attività di selezione di foto per passare correttamente la chiaveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, anziché utilizzare l'extra con la chiave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Se sei un OEM che implementa un selettore di foto di riserva di sistema, ti consigliamo vivamente di supportare entrambi gli extra per garantire la massima compatibilità. (I96a00)
Versione 1.9.0-alpha01
29 novembre 2023
androidx.activity:activity:1.9.0-alpha01
, androidx.activity:activity-compose:1.9.0-alpha01
e androidx.activity:activity-ktx:1.9.0-alpha01
vengono rilasciati. La versione 1.9.0-alpha01 contiene questi commit.
Nuove funzionalità
ComponentActivity
ora implementaOnUserLeaveHintProvider
per consentire ai componenti di eseguire callback per gli eventionUserLeaveHint
. (I54892)
Modifiche all'API
ComponentActivity
è stato riscritto in Kotlin. (I14f31)ActivityResultCaller
è stato riscritto in Kotlin. (Ib02e4)ActivityResultLauncher
è stato riscritto in Kotlin. Nell'ambito di questa conversione, il metodogetContract
è ora una proprietà Kotlin astratta. Si tratta di una modifica compatibile con i binari, ma che comporta una rottura del codice sorgente se l'implementazione diActivityResultLauncher
è scritta in Kotlin. (Id4615)PickVisualMediaRequest
ora ha lo stesso livello API minimo 19 del contrattoPickVisualMedia
Activity Result. (Id6e21)
Aggiornamento delle dipendenze
- Ora l'attività dipende da Core
1.13.0-alpha01
. (I14f31)
Versione 1.8
Versione 1.8.2
13 dicembre 2023
androidx.activity:activity:1.8.2
, androidx.activity:activity-compose:1.8.2
e androidx.activity:activity-ktx:1.8.2
vengono rilasciati. La versione 1.8.2 contiene questi commit.
Correzioni di bug
- È stato corretto l'extra passato a
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
del contratto dell'attività del selettore di foto per passare correttamente la chiaveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, anziché utilizzare l'extra con la chiave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Se sei un OEM che implementa un selettore di foto di riserva di sistema, ti consigliamo vivamente di supportare entrambi gli extra per garantire la massima compatibilità. (I96a00)
Versione 1.8.1
15 novembre 2023
androidx.activity:activity:1.8.1
, androidx.activity:activity-compose:1.8.1
e androidx.activity:activity-ktx:1.8.1
vengono rilasciati. La versione 1.8.1 contiene questi commit.
Correzioni di bug
OnBackPressedDispatcher
ora continua a inviare alOnBackPressedCallback
corretto anche dopo l'aggiunta di un nuovoOnBackPressedCallback
durante la gestione del gesto Indietro. (Id0ff6)
Versione 1.8.0
4 ottobre 2023
androidx.activity:activity:1.8.0
, androidx.activity:activity-compose:1.8.0
e androidx.activity:activity-ktx:1.8.0
vengono rilasciati. La versione 1.8.0 contiene questi commit.
Modifiche importanti dalla versione 1.7.0
- Indietro predittivo:
OnBackPressedCallback
ora offre nuovi callback Indietro predittivo per gestire l'avvio del gesto Indietro, l'avanzamento durante il gesto e l'annullamento del gesto Indietro, oltre al precedente callbackhandleOnBackPressed()
per il momento in cui il gesto Indietro viene eseguito. È inoltre disponibile il composablePredictiveBackHandler
per gestire gli eventi di gesto di ritorno predittivo in Composizione attività. Fornisce un flusso di oggetti BackEventCompat che devono essere raccolti nella lambda in sospensione che fornisci:
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 ritirato a favore delle API per la gestione del pulsante Indietro. Ora gli sviluppatori devono utilizzare OnBackPressedDispatcher
anziché eseguire l'override di questo metodo.
- EdgeToEdge: è stato aggiunto
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
androidx.activity:activity:1.8.0-rc01
, androidx.activity:activity-compose:1.8.0-rc01
e androidx.activity:activity-ktx:1.8.0-rc01
vengono rilasciati. La versione 1.8.0-rc01 contiene questi commit.
Versione 1.8.0-beta01
6 settembre 2023
androidx.activity:activity:1.8.0-beta01
, androidx.activity:activity-compose:1.8.0-beta01
e androidx.activity:activity-ktx:1.8.0-beta01
vengono rilasciati. 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
androidx.activity:activity:1.8.0-alpha07
, androidx.activity:activity-compose:1.8.0-alpha07
e androidx.activity:activity-ktx:1.8.0-alpha07
vengono rilasciati. La versione 1.8.0-alpha07 contiene questi commit.
Nuove funzionalità
A Composizione attività è stato aggiunto un nuovo composable
PredictiveBackHandler
per gestire gli eventi di gesto Indietro predittivo. Fornisce unFlow
di oggettiBackEventCompat
che devono essere raccolti nella lambda di sospensione che fornisci: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 } }
Inoltre, viene fornito un avviso in fase di compilazione tramite la regola lint per garantire che
Flow
chiamicollect()
. (Id2773, b/294884345)onBackPressedDispatcher
inComponentActivity
viene ora inizializzato in modo lazy, in modo che venga creato solo quando necessario. (I0bf8e)
Correzioni di bug
ComponentActivity
non mostrerà più un NPE su Android 13 quando riceve un callbackonBackPressed()
e l'attività è già stataDESTROYED
. (Idb055, b/291869278)- Sono stati rimossi gli utilizzi dell'API
isAtLeastU()
sperimentale (Ie9117, b/289269026)
Versione 1.8.0-alpha06
21 giu 2023
androidx.activity:activity:1.8.0-alpha06
, androidx.activity:activity-compose:1.8.0-alpha06
e androidx.activity:activity-ktx:1.8.0-alpha06
vengono rilasciati. La versione 1.8.0-alpha06 contiene questi commit.
Nuove funzionalità
OnBackPressedDispatcher
ora annulla correttamente tutti i callback rimossi durante un Gesto Indietro predittivo. (I3f90f)
Modifiche all'API
- Quando passi
SystemBarStyle.auto
all'APIenableEdgeToEdge
, ora puoi sostituire il parametro lambdadetectDarkMode
per fornire una logica personalizzata per il rilevamento della modalità notturna. (aosp/2546393, b/278263793)
Versione 1.8.0-alpha05
7 giugno 2023
androidx.activity:activity:1.8.0-alpha05
, androidx.activity:activity-compose:1.8.0-alpha05
e androidx.activity:activity-ktx:1.8.0-alpha05
vengono rilasciati. Questa versione è sviluppata in un ramo interno.
Modifiche all'API
- Ora Activity fornisce una classe
BackEventCompat
che funge da versione compatibile con le versioni precedenti diBackEvent
ed è disaccoppiata dalla classeBackEvent
del framework. - Modifica non compatibile: i metodi
handleOnBackStarted
ehandleOnBackProgressed
diOnBackPressedCallback
ora ricevono un'istanzaandroidx.activity.BackEventCompat
anziché una classeandroid.window.BackEvent
del framework. Sono state aggiornate anche le API@VisibleForTesting
equivalenti suOnBackPressedDispatcher
. - Il costruttore di
OnBackPressedDispatcher
ora accetta un'istanza facoltativa diConsumer<Boolean>
che consente ai proprietari dell'elaboratore di ricevere un callback ogni volta che il numero di callback abilitati passa da zero a un valore diverso da zero o viceversa.
Correzioni di bug
- Da Attività
1.7.2
: correzione dell'arresto anomalo diReportDrawn
quando esci da una schermata prima della chiamata direport
. (Ic46f1, b/260506820)
Versione 1.8.0-alpha04
10 maggio 2023
androidx.activity:activity:1.8.0-alpha04
, androidx.activity:activity-compose:1.8.0-alpha04
e androidx.activity:activity-ktx:1.8.0-alpha04
vengono rilasciati. È stato rilasciato da un ramo interno.
Correzioni di bug
- Dalla versione 1.7.1: -
ReportFullyDrawExecuter
non perde più quando si utilizzaComponentActivity
conActivityScenario
. (Id2ff2, b/277434271)
Versione 1.8.0-alpha03
12 aprile 2023
androidx.activity:activity:1.8.0-alpha03
, androidx.activity:activity-compose:1.8.0-alpha03
e androidx.activity:activity-ktx:1.8.0-alpha03
vengono rilasciati. È 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 all'API
ComponentActivity.onBackPressed()
è stato ritirato a favore delle API per la gestione del pulsante Indietro. Ora gli sviluppatori devono utilizzareOnBackPressedDispatcher
anziché eseguire l'override di questo metodo. (Ibce2f, b/271596918)ComponentDialog
eComponentActivity
ora contengono l'API pubblicainitViewTreeOwners()
da utilizzare per inizializzare tutti i proprietari dell'albero delle visualizzazioni prima di impostare la visualizzazione dei contenuti. (Ibdce0, b/261314581)
Correzioni di bug
- Risolto un problema per cui i frammenti invalidavano in modo errato MenuHost e causavano un comportamento imprevisto di altri menu nell'attività. (I9404e, b/244336571)
Altre modifiche
ActivityResultRegister
ora utilizza KotlinRandom
anziché Java. (I4d98f, b/272096025)
Versione 1.8.0-alpha02
8 marzo 2023
androidx.activity:activity:1.8.0-alpha02
, androidx.activity:activity-compose:1.8.0-alpha02
e androidx.activity:activity-ktx:1.8.0-alpha02
vengono rilasciati. Sviluppato da un ramo interno.
Aggiornamento delle dipendenze
- Da Attività
1.7.0-rc01
: ora l'attività dipende daLifecycle 2.6.0
.
Versione 1.8.0-alpha01
8 febbraio 2023
androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
e androidx.activity:activity-ktx:1.8.0-alpha01
vengono rilasciati. È stato creato da un ramo interno.
Nuove funzionalità
- La classe
OnBackPressedCallback
ora contiene nuovi callback di avanzamento del gesto Indietro predittivo per gestire l'avvio del gesto Indietro, l'avanzamento durante il gesto e l'annullamento del gesto Indietro, oltre al precedente callbackhandleOnBackPressed()
per quando il gesto Indietro viene eseguito.
Versione 1.7
Versione 1.7.2
24 maggio 2023
androidx.activity:activity:1.7.2
, androidx.activity:activity-compose:1.7.2
e androidx.activity:activity-ktx:1.7.2
vengono rilasciati. La versione 1.7.2 contiene questi commit.
Correzioni di bug
- Correzione dell'arresto anomalo di
ReportDrawn
quando si esce da una schermata prima della chiamata direport
. (Ic46f1, b/260506820)
Versione 1.7.1
19 aprile 2023
androidx.activity:activity:1.7.1
, androidx.activity:activity-compose:1.7.1
e androidx.activity:activity-ktx:1.7.1
vengono rilasciati. La versione 1.7.1 contiene questi commit.
Correzioni di bug
ReportFullyDrawExecuter
non perde più quando si utilizzaComponentActivity
conActivityScenario
. (Id2ff2, b/277434271)
Versione 1.7.0
22 marzo 2023
androidx.activity:activity:1.7.0
, androidx.activity:activity-compose:1.7.0
e androidx.activity:activity-ktx:1.7.0
vengono rilasciati. La versione 1.7.0 contiene questi commit.
Modifiche importanti dalla versione 1.6.0
- I contratti dell'attività di selettore di foto in
PickVisualMedia
ePickMultipleVisualMedia
sono stati aggiornati in modo da contenere un'opzione di riserva aggiuntiva per i casi in cuiMediaStore.ACTION_PICK_IMAGES
non è disponibile, che consente agli OEM e alle app di sistema, come Google Play Services, di fornire 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à questa opzione di riserva se è disponibile prima di passare all'utilizzo diIntent.ACTION_OPEN_DOCUMENT
, che continuerà a supportare tutti i dispositivi con API 19 e versioni successive. ComponentDialog
ora implementaSavedStateRegistryOwner
e ha accesso al proprioSavedStateRegistry
e impostaSavedStateRegistryOwner
per il proprioViewTree
. Ora è possibile utilizzare Jetpack Compose all'interno di unComponentDialog
in quanto soddisfa sia i requisiti diLifecycleOwner
che diSavedStateRegistryOwner
associati alla finestra tramite le APIViewTree
.IntentSenderRequest.Builder.setFlags()
ora ti consente di impostare più flag daIntent
, anziché un solo flag.
Conversione in Kotlin
Diversi classi Activity sono stati convertiti in Kotlin. Tutti i corsi convertiti mantengono la compatibilità binaria con le versioni precedenti. Le seguenti classi presentano modifiche incompatibili con il codice sorgente per le classi scritte in Kotlin: ActivityResultRegistryOwner
, OnBackPressedDispatcherOwner
.
La tabella seguente fornisce le conversioni di origine per la nuova versione di Attività:
Attività 1.5 | Attività 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
Anche queste classi sono state convertite in Kotlin, ma rimangono compatibili con il codice sorgente: 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 temporizzazione e non devono essere chiamate nell'ambito di una chiamata onDraw
.
Ti consigliamo di attivare le seguenti API:
- Segnale al runtime Android al termine dell'avvio per garantire che tutto il codice eseguito durante una sequenza di avvio multi-frame sia incluso e abbia la priorità per la compilazione in background.
- Segnale Macrobenchmark e Play Vitals quando l'applicazione deve essere considerata completamente disegnata per le metriche di avvio, in modo da poter monitorare il rendimento.
Sono state aggiunte tre API Activity Compose per semplificare l'utilizzo di FullyDrawnReporter
dai singoli composabili:
ReportDrawn
indica che il composable è immediatamente pronto per l'interazione.ReportDrawnWhen
accetta un predicato (ad es.list.count > 0
) per indicare quando il composable è pronto per l'interazione.ReportDrawnAfter
accetta un metodo di sospensione che, al termine, indica che è tutto pronto per l'interazione.
Aggiornamenti delle dipendenze
- Ora l'attività dipende dal ciclo di vita
2.6.1
. (8fc31d) - Ora l'attività dipende da ProfileInstaller
1.3.0
. (83d3b1)
Versione 1.7.0-rc01
8 marzo 2023
androidx.activity:activity:1.7.0-rc01
, androidx.activity:activity-compose:1.7.0-rc01
e androidx.activity:activity-ktx:1.7.0-rc01
vengono rilasciati. La versione 1.7.0-rc01 contiene questi commit.
Aggiornamento delle dipendenze
- Ora l'attività dipende da
Lifecycle 2.6.0
.
Versione 1.7.0-beta02
22 febbraio 2023
androidx.activity:activity:1.7.0-beta02
, androidx.activity:activity-compose:1.7.0-beta02
e androidx.activity:activity-ktx:1.7.0-beta02
vengono rilasciati. La versione 1.7.0-beta02 contiene questi commit.
Modifiche all'API
- L'azione e gli extra utilizzati dai contratti
PickVisualMedia
ePickMultipleVisualMedia
come alternativa quandoMediaStore.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 questo piano di riserva è ancora limitata alle app di sistema. (Icd320)
Versione 1.7.0-beta01
8 febbraio 2023
androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
e androidx.activity:activity-ktx:1.7.0-beta01
vengono rilasciati. La versione 1.7.0-beta01 contiene questi commit.
Nuove funzionalità
IntentSenderRequest.Builder.setFlags()
ora ti consente di impostare più flag daIntent
, anziché un solo flag. (Iac04c)
Correzioni di bug
- Il valore di riserva per
PickVisualMedia
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 Kotlin
ActivityResultRegistryOwner
è ora scritto in Kotlin. Si tratta di una modifica incompatibile con il codice sorgente per le classi scritte in Kotlin: ora devi sostituire la proprietàactivityResultRegistry
anziché implementare la precedente funzionegetActivityResultRegistry()
. (I0b00e)OnBackPressedDispatcherOwner
è ora scritto in Kotlin. Si tratta di una modifica incompatibile con il codice sorgente per le classi scritte in Kotlin: ora devi sostituire la proprietàonBackPressedDispatcher
anziché implementare la precedente funzionegetOnBackPressedDispatcher
. (Ia277d)ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
eOnBackPressedDispatcher
ora sono scritti in Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)
Versione 1.7.0-alpha04
25 gennaio 2023
androidx.activity:activity:1.7.0-alpha04
, androidx.activity:activity-compose:1.7.0-alpha04
e androidx.activity:activity-ktx:1.7.0-alpha04
vengono rilasciati. La versione 1.7.0-alpha04 contiene questi commit.
Nuove funzionalità
- I contratti relativi ai risultati dell'attività
PickVisualMedia
ePickMultipleVisualMedia
utilizzeranno ora un selettore di foto fornito da Google Play Services, se disponibile, nei casi in cui il sistema Android fornisca un selettore di foto (ad es.MediaStore.ACTION_PICK_IMAGES
) non è disponibile. L'APIisPhotoPickerAvailable()
che rileva solo il selettore di foto fornito dal sistema Android è stata ritirata. Ti consigliamo di utilizzare la nuova APIisPhotoPickerAvailable(Context)
, che restituirà se uno dei selettori di foto è disponibile. (I55be6)
Versione 1.7.0-alpha03
11 gennaio 2023
androidx.activity:activity:1.7.0-alpha03
, androidx.activity:activity-compose:1.7.0-alpha03
e androidx.activity:activity-ktx:1.7.0-alpha03
vengono rilasciati. La versione 1.7.0-alpha03 contiene questi commit.
Nuove funzionalità
ComponentDialog
ora implementaSavedStateRegistryOwner
e ha accesso al proprioSavedStateRegistry
e impostaSavedStateRegistryOwner
per il proprio ViewTree. Ora è possibile utilizzare Jetpack Compose all'interno di unComponentDialog
perché soddisfa sia i requisiti diLifecycleOwner
che diSavedStateRegistryOwner
associati alla finestra tramite le API ViewTree. (Idca17, I73468 b/261162296)
Modifiche all'API
- È stato aggiunto un composable
ReportDrawn
che contrassegna immediatamente l'attività come pronta per la chiamatareportFullyDrawn
. (Ic5b14, b/259687964)
Conversioni Kotlin
- Le classi
ActvitiyResultCallback
eOnBackPressedCallback
sono state entrambe convertite in Kotlin mantenendo la compatibilità con il codice sorgente e i file binari. (Ifc5e5, Ide1b0, b/257291701)
Versione 1.7.0-alpha02
24 ottobre 2022
androidx.activity:activity:1.7.0-alpha02
, androidx.activity:activity-compose:1.7.0-alpha02
e androidx.activity:activity-ktx:1.7.0-alpha02
vengono rilasciati. La versione 1.7.0-alpha02 contiene questi commit.
Correzioni di bug
- Da Attività
1.6.1
: è stato risolto un problema relativo al mancato avvio del contrattoPickMultipleVisualMedia
Result Result sui dispositivi Android R quando si utilizza il valore predefinito permaxItems
. (Ie2776, b/249182130)
Versione 1.7.0-alpha01
5 ottobre 2022
androidx.activity:activity:1.7.0-alpha01
, androidx.activity:activity-compose:1.7.0-alpha01
e androidx.activity:activity-ktx:1.7.0-alpha01
vengono rilasciati. 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 temporizzazione e non devono essere chiamate nell'ambito di una chiamata onDraw
.
Ti consigliamo di attivare le seguenti API:
- Segnale al runtime Android al termine dell'avvio per garantire che tutto il codice eseguito durante una sequenza di avvio multi-frame sia incluso e abbia la priorità per la compilazione in background.
- Segnale Macrobenchmark e Play Vitals quando l'applicazione deve essere considerata completamente disegnata per le metriche di avvio, in modo da poter monitorare il rendimento.
Sono state aggiunte due API Activity Compose per semplificare l'utilizzo di FullyDrawnReporter
dai singoli composabili:
ReportDrawnWhen
accetta un predicato (ad es.list.count > 0
) per indicare quando il composable è pronto per l'interazione.ReportDrawnAfter
accetta un metodo di sospensione che, al termine, indica che è tutto pronto per l'interazione.
Versione 1.6.1
Versione 1.6.1
24 ottobre 2022
androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
e androidx.activity:activity-ktx:1.6.1
vengono rilasciati. La versione 1.6.1 contiene questi commit.
Correzioni di bug
- È stato risolto un problema relativo al mancato avvio del contratto
PickMultipleVisualMedia
Result Result sui dispositivi Android R quando si utilizza il valore predefinito permaxItems
. (Ie2776, b/249182130)
Versione 1.6.0
Versione 1.6.0
21 settembre 2022
androidx.activity:activity:1.6.0
, androidx.activity:activity-compose:1.6.0
e androidx.activity:activity-ktx:1.6.0
vengono rilasciati. La versione 1.6.0 contiene questi commit.
Modifiche importanti dalla versione 1.5.0
- Sono stati aggiunti
ActivityResultContracts.PickVisualMedia
eActivityResultContracts.PickMultipleVisualMedia
per fornire un contratto compatibile con le versioni precedenti che utilizzaMediaStore.ACTION_PICK_IMAGES
quando il Selettore di foto è disponibile eIntent.ACTION_OPEN_DOCUMENT
quando non è disponibile. - Abbiamo integrato
OnBackInvokedCallback
in Android 13 inOnBackPressedDispatchers
fornito daComponentActivity
eComponentDialog
. In questo modo, tutte le API basate suOnBackPressedDispatcher
funzionano quando viene attivato un gesto di ritorno predittivo.
Versione 1.6.0-rc02
7 settembre 2022
androidx.activity:activity:1.6.0-rc02
, androidx.activity:activity-compose:1.6.0-rc02
e androidx.activity:activity-ktx:1.6.0-rc02
vengono rilasciati. La versione 1.6.0-rc02 contiene questi commit.
Correzioni di bug
OnBackPressedDispatcher
ora registra ilOnBackInvokedCallback
con ilPRIORITY_DEFAULT
anziché conPRIORITY_OVERLAY
. (I3901f)- Le classi che estendono
ComponentActivity
ora avranno sempre inviati entrambi i relativi callbackonMultiWindowModeChanged()
. (Ic4d85) ActivityResultRegistry
non restituirà più un risultato aActivityResultCallback
quando la chiamatalaunch
genera unException
e il callback è stato registrato senza unLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
ora invierà correttamente le chiamate al menu senza dover chiamare la funzione super nella tua attività. (Ie33c5, b/238057118)
Aggiornamento delle dipendenze
- La libreria
Activity
ora dipende da Lifecycle2.5.1
. (If6697)
Versione 1.6.0-rc01
24 agosto 2022
androidx.activity:activity:1.6.0-rc01
, androidx.activity:activity-compose:1.6.0-rc01
e androidx.activity:activity-ktx:1.6.0-rc01
vengono rilasciati. La versione 1.6.0-rc01 contiene questi commit.
Correzioni di bug
- L'inizializzazione di un
OnBackPressedDispatcher
non causerà piùClassVerificationError
se utilizzi versioni dell'SDK precedenti alla 33. (Ic32e1) - I metodi che sostituiscono il callback
onPictureInPictureModeChanged()
diComponentActivity
ora avranno sempre i relativi callback inviati. (Ib7fdb)
Versione 1.6.0-beta01
10 agosto 2022
androidx.activity:activity:1.6.0-beta01
, androidx.activity:activity-compose:1.6.0-beta01
e androidx.activity:activity-ktx:1.6.0-beta01
vengono rilasciati. La versione 1.6.0-beta01 contiene questi commit.
Modifiche all'API
- I metodi
startActivityForResult
estartIntentSenderForResult
deprecati inComponentActivity
sono stati contrassegnati con@NonNull
perché il passaggio dinull
ha sempre causato un arresto anomalo. (Id2a25, b/231476082)
Correzioni di bug
- Da Attività
1.5.1
:ActivityResultRegistry
non restituirà più un risultato aActivityResultCallback
quando la chiamatalaunch
genera unException
e il callback è stato registrato senza unLifecycleOwner
. (Ia7ff7, b/238350794) - Da Attività
1.5.1
: oraComponentActivity
invierà correttamente le chiamate al menu alle sostituzionionPrepareOptionMenu()
,onCreateOptionsMenu()
eonOptionsItemSelected()
senza dover chiamare la funzione super. (Ie33c5, b/238057118)
Aggiornamento delle dipendenze
- Da Attività
1.5.1
: la libreriaActivity
ora dipende dalla versioneLifecycle
2.5.1
. (If6697)
Versione 1.6.0-alpha05
15 giugno 2022
androidx.activity:activity:1.6.0-alpha05
, androidx.activity:activity-compose:1.6.0-alpha05
e androidx.activity:activity-ktx:1.6.0-alpha05
vengono rilasciati. La versione 1.6.0-alpha05 è stata sviluppata in un ramo pre-release privato e non ha commit pubblici.
Modifiche all'API
minCompileSdk
ora è 33 per allinearsi all'SDK Tiramisu Beta 3
Correzioni di bug
- È stato corretto l'arresto anomalo sui dispositivi meno recenti durante il controllo dell'estensione dell'SDK per
PickVisualMedia
ActivityResultContract
, in modo che ora funzioni conACTION_OPEN_DOCUMENT
sui dispositivi con Android 10 e versioni precedenti.
Versione 1.6.0-alpha04
18 maggio 2022
androidx.activity:activity:1.6.0-alpha04
e androidx.activity:activity-ktx:1.6.0-alpha04
vengono rilasciati.
Correzioni di bug
- È stato corretto un errore in
PickVisualMediaRequest
per cui il tentativo di creare una richiesta tramite il Builder o la funzione Kotlin di primo livello causava un overflow dello stack. - È stato integrato il
OnBackInvokedCallback
in Android 13 Dev Beta 2 nelOnBackPressedDispatcher
fornito daComponentDialog
. In questo modo, tutte le API basate suOnBackPressedDispatcher
funzionano quando attivi un gesto di ritorno predittivo.
Versione 1.6.0-alpha03
27 aprile 2022
androidx.activity:activity:1.6.0-alpha03
, androidx.activity:activity-compose:1.6.0-alpha03
e androidx.activity:activity-ktx:1.6.0-alpha03
vengono rilasciati.
- Nota: questa versione verrà compilata solo in base all'SDK Android 13 Developer Beta 1.
Nuove funzionalità
- Sono stati aggiunti
ActivityResultContracts.PickVisualMedia
eActivityResultContracts.PickMultipleVisualMedia
per fornire un contratto compatibile con le versioni precedenti che utilizzaMediaStore.ACTION_PICK_IMAGES
quando il Selettore di foto è disponibile eIntent.ACTION_OPEN_DOCUMENT
quando non è disponibile. - È stato integrato il
OnBackInvokedCallback
in Android 13 Dev Beta 1 nelOnBackPressedDispatcher
fornito daComponentActivity
. In questo modo, tutte le API basate suOnBackPressedDispatcher
funzionano quando attivi un gesto di ritorno predittivo.
Versione 1.6.0-alpha01
23 marzo 2022
androidx.activity:activity:1.6.0-alpha01
, androidx.activity:activity-compose:1.6.0-alpha01
e androidx.activity:activity-ktx:1.6.0-alpha01
vengono rilasciati.
- Nota: questa versione verrà compilata solo in base all'SDK Android 13 Developer Preview 2.
Nuove funzionalità
- Modifiche integrate nella versione Dev Preview 2 di Android 13 in
ComponentActivity
.
Versione 1.5.1
Versione 1.5.1
27 luglio 2022
androidx.activity:activity:1.5.1
, androidx.activity:activity-compose:1.5.1
e androidx.activity:activity-ktx:1.5.1
vengono rilasciati. La versione 1.5.1 contiene questi commit.
Correzioni di bug
ActivityResultRegistry
non restituirà più un risultato alActivityResultCallback
quando la chiamatalaunch()
genera unException
e il callback è stato registrato senza unLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
ora invierà correttamente le chiamate al menu alle sostituzionionPrepareOptionMenu()
,onCreateOptionsMenu()
eonOptionsItemSelected()
senza dover chiamare la funzione super. (Ie33c5, b/238057118)
Aggiornamento delle dipendenze
- La libreria
Activity
ora dipende da Lifecycle2.5.1
. (If6697)
Versione 1.5.0
Versione 1.5.0
29 giugno 2022
androidx.activity:activity:1.5.0
, androidx.activity:activity-compose:1.5.0
e androidx.activity:activity-ktx:1.5.0
vengono rilasciati. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
- ComponentDialog:
ComponentDialog
è una sottoclasse diDialog
che include unOnBackPressedDispatcher
che verrà chiamato quando viene premuto il pulsante Indietro del sistema e la finestra di dialogo è visibile. È importante sottolineare che questa sottoclasse imposta ancheViewTreeOnBackPressedDispatcherOwner
, consentendo alle visualizzazioni un modo generico per recuperare il gestore corretto, indipendentemente dal fatto che esista in unComponentActivity
o in unComponentDialog
. - Interfacce di callback:
ComponentActivity
ora implementa un insieme di interfacce di callback modulari che possono essere utilizzate al posto dei callbackActivity
. Queste interfacce includono:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- Integrazione di CreationExtras:
ComponentActivity
ora è in grado di fornire unViewModelProvider.Factory
senza stato tramiteCreationExtras
di Lifecycle2.5.0
.
Altre modifiche
- Il costruttore senza parametri per
ActivityResultContracts.CreateDocument
è stato ritirato e sostituito con un nuovo costruttore che accetta un tipo MIME specifico (ad es. "image/png") come richiesto daIntent.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 rilasciati senza modifiche rispetto alla versione 1.5.0-beta01. La versione 1.5.0-rc01 contiene questi commit.
Versione 1.5.0-beta01
20 aprile 2022
androidx.activity:activity:1.5.0-beta01
, androidx.activity:activity-compose:1.5.0-beta01
e androidx.activity:activity-ktx:1.5.0-beta01
vengono rilasciati. La versione 1.5.0-beta01 contiene questi commit.
Aggiornamenti delle dipendenze
- Ora l'attività dipende dal ciclo di vita
2.4.0-beta01
.
Versione 1.5.0-alpha05
6 aprile 2022
androidx.activity:activity:1.5.0-alpha05
, androidx.activity:activity-compose:1.5.0-alpha05
e androidx.activity:activity-ktx:1.5.0-alpha05
vengono rilasciati. La versione 1.5.0-alpha05 contiene questi commit.
Correzioni di bug
- Ora
onPanelClosed()
diComponentActivity
chiama ancheonPanelClosed()
di super, risolvendo un problema per cui il metodoonContextMenuClosed
non veniva chiamato. (Ib6f77)
Versione 1.5.0-alpha04
23 marzo 2022
androidx.activity:activity:1.5.0-alpha04
, androidx.activity:activity-compose:1.5.0-alpha04
e androidx.activity:activity-ktx:1.5.0-alpha04
vengono rilasciati. La versione 1.5.0-alpha04 contiene questi commit.
Correzioni di bug
SavedStateViewFactory
ora supporta l'utilizzo diCreationExtras
anche se è stato inizializzato con unSavedStateRegistryOwner
. Se vengono forniti extra, gli argomenti inizializzati vengono ignorati. (I6c43b, b/224844583)
Versione 1.5.0-alpha03
23 febbraio 2022
androidx.activity:activity:1.5.0-alpha03
, androidx.activity:activity-compose:1.5.0-alpha03
e androidx.activity:activity-ktx:1.5.0-alpha03
vengono rilasciati. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche all'API
- Ora puoi passare
CreationExtras
alla funzioneby viewModels()
dell'attività (I6a3e6, b/217600303)
Versione 1.5.0-alpha02
9 febbraio 2022
androidx.activity:activity:1.5.0-alpha02
, androidx.activity:activity-compose:1.5.0-alpha02
e androidx.activity:activity-ktx:1.5.0-alpha02
vengono rilasciati. La versione 1.5.0-alpha02 contiene questi commit.
Nuove funzionalità
ComponentActivity
ora implementa l'interfacciaOnPictureInPictureModeChangedProvider
per consentire a qualsiasi componente di ricevere eventi di modifica della modalità Picture in picture. (I9f567)ComponentActivity
ora implementa l'interfacciaOnMultiWindowModeChangedProvider
per consentire a qualsiasi componente di ricevere eventi di modifica della modalità a più finestre. (I62d91)
Versione 1.5.0-alpha01
26 gennaio 2022
androidx.activity:activity:1.5.0-alpha01
, androidx.activity:activity-compose:1.5.0-alpha01
e androidx.activity:activity-ktx:1.5.0-alpha01
vengono rilasciati. La versione 1.5.0-alpha01 contiene questi commit.
Nuove funzionalità
ComponentActivity
ora si integra con ViewModel CreationExtras, introdotto nell'ambito del ciclo di vita2.5.0-alpha01
. (Ie7e00, b/207012584)- È stato aggiunto
ComponentDialog
, una sottoclasse diDialog
che include unOnBackPressedDispatcher
che verrà chiamato quando viene premuto il pulsante Indietro del sistema quando la finestra di dialogo è visibile. È importante sottolineare che questo sottotipo imposta ancheViewTreeOnBackPressedDispatcherOwner
, offrendo alle visualizzazioni un modo generico per recuperare il gestore corretto, indipendentemente dal fatto che esista in unComponentActivity
o in unComponentDialog
. (I8a1bc) ComponentActivity
ora implementa la nuova interfaceOnNewIntentProvider
per consentire a qualsiasi componente di ricevere questi eventi. (If1f8b)ComponentActivity
ora implementa la nuova interfaceOnConfigurationChangedProvider
per consentire a qualsiasi componente di ricevere questi eventi. (If623b)ComponentActivity
ora implementa la nuova interfaceOnTrimMemoryProvider
per consentire a qualsiasi componente di ricevere questi eventi. (Ia9295)
Modifiche all'API
- Il costruttore senza parametri per
ActivityResultContracts.CreateDocument
è stato ritirato e sostituito con un nuovo costruttore che accetta un tipo MIME specifico (ad es."image/png"
) come richiesto daIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) - Ora il
OnBackPressedDispatcherOwner
associato a una vista può essere recuperato tramite ilViewTreeOnBackPressedDispatcherOwner
, anziché tramite ilContext
. (I74685)
Correzioni di bug
- È stato corretto un arresto anomalo durante l'accesso a un
ViewModel
per la prima volta da un callbackregisterForActivityResult()
o dai callback a unLifecycleObserver
aggiunto nell'ambito diinit
di unComponentActivity
. (Ife83f)
Versione 1.4.0
Versione 1.4.0
27 ottobre 2021
androidx.activity:activity:1.4.0
, androidx.activity:activity-compose:1.4.0
e androidx.activity:activity-ktx:1.4.0
vengono rilasciati. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
- AndroidX
ComponentActivity
ora implementa l'interfacciaMenuHost
. In questo modo, qualsiasi componente può aggiungere voci di menu aActionBar
aggiungendo un'istanza diMenuProvider
all'attività. Se vuoi, a ogniMenuProvider
puoi aggiungere unLifecycle
che controllerà automaticamente la visibilità di questi elementi del menu in base allo stato diLifecycle
e gestirà la rimozione diMenuProvider
quandoLifecycle
viene distrutto. - La classe
ActivityResultContract
è stata riscritta in Kotlin per garantire che gli sviluppatori che scrivono contratti personalizzati in Kotlin possano definire la nullabilità corretta per le classi di input e output. - La classe
ActivityResultContracts
e i relativi contratti sono stati riscritti in Kotlin per garantire la nullabilità corretta.
Versione 1.4.0-rc01
13 ottobre 2021
androidx.activity:activity:1.4.0-rc01
, androidx.activity:activity-compose:1.4.0-rc01
e androidx.activity:activity-ktx:1.4.0-rc01
vengono rilasciati. La versione 1.4.0-rc01 contiene questi commit.
Correzioni di bug
ActivityResultRegistry
non restituirà più un risultato aActivityResultCallback
quando la chiamatalaunch
genera unException
. (If4f91, b/200845664)
Versione 1.4.0-beta01
29 settembre 2021
androidx.activity:activity:1.4.0-beta01
, androidx.activity:activity-compose:1.4.0-beta01
e androidx.activity:activity-ktx:1.4.0-beta01
vengono rilasciati. La versione 1.4.0-beta01 contiene questi commit.
Modifiche all'API
- È stato corretto il tipo per
ActivityResultContracts.OpenMultipleDocuments
eActivityResultContracts.GetMultipleContents
che ha poi causato l'utilizzo di un tipo di outputList<? extends Uri>
quando si utilizza il codice del linguaggio di programmazione Java. (If71de) - Le costanti pubbliche all'interno delle classi
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
eActivityResultContracts.RequestMultiplePermissions
sono ora accessibili quando si utilizza Kotlin tramite gli oggettiCompanion
ora pubblici. (aosp/1832555)
Aggiornamenti della documentazione
- Il messaggio di ritiro per le API ora gestite dalle API di risultati delle attività, ovvero
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
eonRequestPermissionsResult
, è stato ampliato con ulteriori dettagli. (cce80f)
Versione 1.4.0-alpha02
15 settembre 2021
androidx.activity:activity:1.4.0-alpha02
, androidx.activity:activity-compose:1.4.0-alpha02
e androidx.activity:activity-ktx:1.4.0-alpha02
vengono rilasciati. La versione 1.4.0-alpha02 contiene questi commit.
Nuove funzionalità
- L'elemento
activity-compose
ora contiene un errore di lintLaunchDuringComposition
che impedisce di chiamare il metodolaunch
diActivityResultLauncher
nell'ambito della composizione, in quanto la composizione non deve avere effetti collaterali. Utilizza le API per la gestione degli effetti collaterali. (7c2bbe, b/191347220)
Modifiche all'API
- La classe
ActivityResultContract
è stata riscritta in Kotlin per garantire che gli sviluppatori che scrivono contratti personalizzati in Kotlin possano definire la nullabilità corretta per le classi di input e output. (I8a8f5) - La classe
ActivityResultContracts
e i relativi contratti sono stati riscritti in Kotlin per garantire la corretta presenza di valori null. (I69802)
Versione 1.4.0-alpha01
1° settembre 2021
androidx.activity:activity:1.4.0-alpha01
, androidx.activity:activity-compose:1.4.0-alpha01
e androidx.activity:activity-ktx:1.4.0-alpha01
vengono rilasciati. La versione 1.4.0-alpha01 contiene questi commit.
Nuove funzionalità
- AndroidX
ComponentActivity
ora implementa l'interfacciaMenuHost
. In questo modo, qualsiasi componente può aggiungere voci di menu aActionBar
aggiungendo un'istanza diMenuProvider
all'attività. Se vuoi, a ogniMenuProvider
puoi aggiungere unLifecycle
che controllerà automaticamente la visibilità di questi elementi del menu in base allo stato diLifecycle
e gestirà la rimozione diMenuProvider
quandoLifecycle
viene distrutto. (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)
}
Modifiche al comportamento
- Ora
ActivityResultRegistry
genera unIllegalStateException
quando tenta di chiamarelaunch()
su unActivityResultLauncher
che non è stato registrato o di cui è stata annullata la registrazione. (Ida75d, b/192567522)
Contributo esterno
- Grazie a dmitrilc per aver corretto un errore ortografico nella documentazione di
ActivityResult
. (#221)
Versione 1.3.1
Versione 1.3.1
4 agosto 2021
androidx.activity:activity:1.3.1
, androidx.activity:activity-compose:1.3.1
e androidx.activity:activity-ktx:1.3.1
vengono rilasciati. La versione 1.3.1 contiene questi commit.
Aggiornamenti delle dipendenze
- Ora l'attività dipende da Kotlin
1.5.21
. - La funzionalità Scrittura di attività ora dipende da Scrittura
1.0.1
.
Versione 1.3.0
Versione 1.3.0
28 luglio 2021
androidx.activity:activity:1.3.0
, androidx.activity:activity-compose:1.3.0
e androidx.activity:activity-ktx:1.3.0
vengono rilasciati. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Elemento Compose dell'attività: l'elemento
activity-compose
fornisce il metodo di estensionesetContent
per ospitare l'interfaccia utente di Jetpack Compose in un'attività e wrapper specifici di Compose per interagire con le APIComponentActivity
per la gestione del pulsante Indietro di sistema e le API di risultato dell'attività. Per ulteriori dettagli, consulta la documentazione. - Contratto CaptureVideo:
CaptureVideo
ActivityResultContract
sostituisce il contrattoTakeVideo
ora deprecato e restituisce un valore booleano che indica il successo e funziona in molte app di fotocamera. - Monitoraggio della visualizzazione dell'indicazione Picture in picture: ora gli utenti di
activity-ktx
possono utilizzare il metodo di estensionetrackPipAnimationHintView
suActivity
per ricostruire automaticamente ilPictureInPictureParams
con la nuova posizione della visualizzazione man mano che cambia posizione rispetto alla finestra.
Versione 1.3.0-rc02
14 luglio 2021
androidx.activity:activity:1.3.0-rc02
, androidx.activity:activity-compose:1.3.0-rc02
e androidx.activity:activity-ktx:1.3.0-rc02
vengono rilasciati. La versione 1.3.0-rc02 contiene questi commit.
Correzioni di bug
- I callback
ActivityResultRegistry
ora vengono salvati e ripristinati correttamente, quindi non vengono duplicati in 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 rilasciati senza modifiche rispetto a 1.3.0-beta02
. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta02
16 giugno 2021
androidx.activity:activity:1.3.0-beta02
, androidx.activity:activity-compose:1.3.0-beta02
e androidx.activity:activity-ktx:1.3.0-beta02
vengono rilasciati. La versione 1.3.0-beta02 contiene questi commit.
activity-compose
è stato aggiornato in modo da dipendere da Compose 1.0.0-beta09
. androidx.compose.ui:ui-test-junit4
ora ha una dipendenza in fase di compilazione da activity-compose
.
Versione 1.3.0-beta01
2 giugno 2021
androidx.activity:activity:1.3.0-beta01
, androidx.activity:activity-compose:1.3.0-beta01
e androidx.activity:activity-ktx:1.3.0-beta01
vengono rilasciati. La versione 1.3.0-beta01 contiene questi commit.
Modifiche all'API
- Il metodo
@Composable registerForActivityResult()
deprecato in precedenza è stato rimosso. UtilizzarememberLauncherForActivityResult()
. (Ic39d3)
Versione 1.3.0-alpha08
18 maggio 2021
androidx.activity:activity:1.3.0-alpha08
, androidx.activity:activity-compose:1.3.0-alpha08
e androidx.activity:activity-ktx:1.3.0-alpha08
vengono rilasciati. La versione 1.3.0-alpha08 contiene questi commit.
Nuove funzionalità
- Il nuovo
CaptureVideo
ActivityResultContract
restituisce un valore booleano aActivityResultCallback
che indica se il video è stato salvato correttamente nell'URI specificato. Questo sostituisce il contrattoTakeVideo
ora deprecato, poiché le app della fotocamera supportavano molto raramente il ritorno di una miniatura bitmap, rendendo il risultato non utile. (Ie21f2, b/185938070) - È stata aggiunta una nuova API
Activity#setPipAnimationHintView
per aggiornare il suggerimento del rettangolo di origine di PipParams ogni volta che la visualizzazione si sposta. (I9063d)
Modifiche all'API
- La funzione
rememberLauncherForActivityResult
ora restituisce un avviatore che ritira la funzioneunregister()
. La registrazione e la disattivazione dell'avviatore vengono gestite automaticamente darememberLauncherForActivityResult
. (I2443e)
Compatibilità di Componi
androidx.activity:activity-compose:1.3.0-alpha08
è compatibile solo con Compose versione1.0.0-beta07
e successive.
Versione 1.3.0-alpha07
21 aprile 2021
androidx.activity:activity:1.3.0-alpha07
, androidx.activity:activity-compose:1.3.0-alpha07
e androidx.activity:activity-ktx:1.3.0-alpha07
vengono rilasciati. La versione 1.3.0-alpha07 contiene questi commit.
Correzioni di bug
- Ora
rememberLauncherForActivityResult
restituisce un riferimento stabile alla stessaActivityResultLauncher
istanza anche se il contratto cambia a causa di ricostruzioni. (Id2d6d) - L'utilizzo di versioni instabili di Fragments superiori a
1.3.0
non genererà più un errore di lint falso positivo che ti chiede di utilizzare1.3.0
. (aosp/1670206, b/184847092)
Versione 1.3.0-alpha06
7 aprile 2021
androidx.activity:activity:1.3.0-alpha06
, androidx.activity:activity-compose:1.3.0-alpha06
e androidx.activity:activity-ktx:1.3.0-alpha06
vengono rilasciati. La versione 1.3.0-alpha06 contiene questi commit.
Modifiche all'API
- L'API
registerForActivityResult()
è stata rinominatarememberLauncherForActivityResult()
per indicare meglio che il valoreActivityResultLauncher
restituito è un oggetto gestito che viene memorizzato per tuo conto. Il tentativo di chiamareunregister
ilActivityResultLauncher
restituito ora genera un errore. (I2bb6d) LocalOnBackPressedDispatcherOwner.current
eLocalActivityResultRegistryOwner.current
ora restituiscono un valore nullable per determinare meglio se è disponibile nella composizione corrente. Le API che richiedono queste API, comeBackHandler
erememberLauncherForActivityResult()
, ora restituiranno un errore più descrittivo se il proprietario sottostante non viene trovato.NavHost
ora funziona anche quando non viene trovato unOnBackPressedDispatcherOwner
, ad esempio durante l'anteprima delNavHost
. (I7d8b4)
Correzioni di bug
- Ora
BackHandler
intercetta correttamente le pressioni del tasto Indietro nel caso in cui l'attività siaSTOPPED
, poi di nuovoSTARTED
e altri callback sono stati aggiunti con un LifecycleOwner. (I71de6, b/182284739) - L'utilizzo dell'estensione del metodo
launch()
con un personalizzatoActivityResultContract
che ha un inputUnit
non causerà più unNullPointerException
(I76282, b/183837954)
Versione 1.3.0-alpha05
24 marzo 2021
androidx.activity:activity:1.3.0-alpha05
, androidx.activity:activity-compose:1.3.0-alpha05
e androidx.activity:activity-ktx:1.3.0-alpha05
vengono rilasciati. La versione 1.3.0-alpha05 contiene questi commit.
Correzioni di bug
- Da Attività 1.2.2: è stato corretto un problema nel controllo lint
InvalidFragmentVersionForActivityResult
che ha generato un falso positivo quando si utilizza Fragment 1.3.1 o versioni successive. (I54da1, b/182388985) - Da Attività 1.2.2:
ComponentActivity
ora evita unClassNotFoundException
quando viene lanciato unIntent
da unActivityResultContract
che in precedenza era tenuto come extra in un altroIntent
. (Ieff05, b/182906230)
Aggiornamenti delle dipendenze
- Da Attività 1.2.2: l'attività ora dipende dal ciclo di vita
2.3.1
.
Versione 1.3.0-alpha04
10 marzo 2021
androidx.activity:activity:1.3.0-alpha04
, androidx.activity:activity-compose:1.3.0-alpha04
e androidx.activity:activity-ktx:1.3.0-alpha04
vengono rilasciati. La versione 1.3.0-alpha04 contiene questi commit.
Correzioni di bug
- Da Attività
1.2.1
:RequestMultiplePermissions
ora restituisce sempre risultati per tutte le autorizzazioni richieste anziché solo per quelle che non sono state concesse in precedenza. (I50bc3, b/180884668) - In Attività
1.2.1
:ActivityResultRegistry
ora garantisce che le richiestelaunch()
in corso restituiscano i risultati anche seunregister()
e poiregister()
di nuovo con la stessa chiave. (I9ef34, b/181267562) - Activity Compose non aggiunge più le dipendenze di test al percorso di classe del runtime. (Ifd8b3)
- È stato risolto un problema con
BackHandler
per cui la lambdaonBack
impostata in precedenza veniva ancora utilizzata dopo la ricostituzione. (8eb5eb)
Versione 1.3.0-alpha03
24 febbraio 2021
androidx.activity:activity:1.3.0-alpha03
, androidx.activity:activity-compose:1.3.0-alpha03
e androidx.activity:activity-ktx:1.3.0-alpha03
vengono rilasciati. La versione 1.3.0-alpha03 contiene questi commit.
Nuove funzionalità
- Ora è disponibile una funzione
registerForActivityResult
componibile per ottenere risultati dalle attività all'interno dei composabili. (Ia7851, b/172690553)
Modifiche all'API
LocalOnBackPressedDispatcherOwner
ora dispone di funzioniprovides
che possono essere utilizzate conCompositionLocalProvider
, sostituendo l'APIasProvidableCompositionLocal()
. (I45d24)
Versione 1.3.0-alpha02
10 febbraio 2021
androidx.activity:activity:1.3.0-alpha02
, androidx.activity:activity-compose:1.3.0-alpha02
e androidx.activity:activity-ktx:1.3.0-alpha02
vengono rilasciati. La versione 1.3.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato risolto un problema in Scrittura attività
1.3.0-alpha01
che causa un'eccezioneNoSuchMethodError: No static method setContent
durante l'utilizzo di Scrittura1.0.0-alpha12
. Tutti gli utenti di Scrivi devono utilizzare1.3.0-alpha02
e versioni successive. (b/179911234)
Modifiche all'API
- L'API
BackHandler
può essere utilizzata per consentire a un componente composable di intercettare il pulsante Indietro del sistema. (I58ed5, b/172154006)
Versione 1.3.0-alpha01
10 febbraio 2021
androidx.activity:activity:1.3.0-alpha01
, androidx.activity:activity-compose:1.3.0-alpha01
e androidx.activity:activity-ktx:1.3.0-alpha01
vengono rilasciati. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
- Il nuovo artefatto
activity-compose
fornisce helper specifici di Jetpack Compose per APIandroidx.activity
specifiche.ComponentActivity.setContent
è stato spostato daandroidx.compose.ui.platform.setContent
aandroidx.activity.compose.setContent
. (Icf416)
Problemi noti
- L'utilizzo di Activity Compose
1.3.0-alpha01
e delle librerie che dipendono da questa, comeandroidx.compose.ui:ui-test-junit4:1.0.0-alpha12
, comporterà un'eccezioneNoSuchMethodError: No static method setContent
. (b/179911234)
Versione 1.2.4
Versione 1.2.4
21 luglio 2021
androidx.activity:activity:1.2.4
e androidx.activity:activity-ktx:1.2.4
vengono rilasciati. La versione 1.2.4 contiene questi commit.
Correzioni di bug
- Da Attività
1.3.0-rc02
: i callback di ActivityResultRegistry ora vengono salvati e ripristinati correttamente, quindi non vengono duplicati in savedState. (I97816, b/191893160)
Versione 1.2.3
Versione 1.2.3
5 maggio 2021
androidx.activity:activity:1.2.3
e androidx.activity:activity-ktx:1.2.3
vengono rilasciati. La versione 1.2.3 contiene questi commit.
Correzioni di bug
- L'utilizzo dell'estensione del metodo
launch()
con un personalizzatoActivityResultContract
che ha un inputUnit
non causerà più unNullPointerException
(I76282, b/183837954) - È stato corretto un falso positivo dell'errore di lint che ti chiede di utilizzare il frammento
1.3.0
quando utilizzi 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
androidx.activity:activity:1.2.2
e androidx.activity:activity-ktx:1.2.2
vengono rilasciati. La versione 1.2.2 contiene questi commit.
Correzioni di bug
- Risolto un problema nel controllo lint
InvalidFragmentVersionForActivityResult
che ha generato un falso positivo quando si utilizza Fragment 1.3.1 o versioni successive. (I54da1, b/182388985) ComponentActivity
ora evita unClassNotFoundException
quando viene lanciato unIntent
da unActivityResultContract
che in precedenza era presente come extra in un altroIntent
. (Ieff05, b/182906230)
Aggiornamenti delle dipendenze
- Ora l'attività dipende dal ciclo di vita
2.3.1
.
Versione 1.2.1
Versione 1.2.1
10 marzo 2021
androidx.activity:activity:1.2.1
e androidx.activity:activity-ktx:1.2.1
vengono rilasciati. La versione 1.2.1 contiene questi commit.
Correzioni di bug
RequestMultiplePermissions
ora restituisce sempre 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 richiestelaunch()
in corso restituiscano i risultati anche seunregister()
, quindiregister()
di nuovo con la stessa chiave. (I9ef34, b/181267562)
Versione 1.2.0
Versione 1.2.0
10 febbraio 2021
androidx.activity:activity:1.2.0
e androidx.activity:activity-ktx:1.2.0
vengono rilasciati. La versione 1.2.0 contiene questi commit.
Modifiche principali dalla versione 1.1.0
- API Result di Attività:
ComponentActivity
ora fornisce unActivityResultRegistry
che ti consente di gestire i flussistartActivityForResult()
+onActivityResult()
erequestPermissions()
+onRequestPermissionsResult()
senza eseguire l'override dei metodi nell'attività o nel frammento, offre una maggiore sicurezza di tipo tramiteActivityResultContract
e fornisce hook per testare questi flussi. Consulta l'articolo aggiornato Ottenere un risultato da un'attività.
ContextAware
:ComponentActivity
ora implementaContextAware
, consentendoti di aggiungere una o più istanze diOnContextAvailableListener
che riceveranno un callback prima diActivity.onCreate()
di base.- Un'estensione Kotlin con sospensione
withContextAvailable()
ti consente di eseguire un blocco senza sospensione quando il contesto diventa disponibile e restituire un risultato. - Questa API viene utilizzata da
FragmentActivity
nel Frammento 1.3.0 per ripristinare lo stato delFragmentManager
. Eventuali listener aggiunti alle sottoclassi diFragmentActivity
verranno eseguiti dopo questo listener. - Questa API viene utilizzata da
AppCompatActivity
in AppCompat 1.3.0-alpha02 o versioni successive. Eventuali listener aggiunti alle sottoclassi diAppCompatActivity
verranno eseguiti dopo questo listener.
- Un'estensione Kotlin con sospensione
Supporto di
ViewTree
:ComponentActivity
ora supporta le APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
eViewTreeSavedStateRegistryOwner
aggiunte in Lifecycle2.3.0
e SavedState1.1.0
in modo da restituire l'attività comeLifecycleOwner
,ViewModelStoreOwner
eSavedStateRegistryOwner
per tutte le visualizzazioni aggiunte direttamente aComponentActivity
.
- Backport di reportFullyDrawn(): il metodo
Activity
direportFullyDrawn()
è stato sottoposto a backport inComponentActivity
per funzionare su tutti i livelli API, correggendo un arresto anomalo nell'API 19 e aggiungendo il monitoraggio per questo metodo per tutti i livelli API.
Versione 1.2.0-rc01
16 dicembre 2020
androidx.activity:activity:1.2.0-rc01
e androidx.activity:activity-ktx:1.2.0-rc01
vengono rilasciati. La versione 1.2.0-rc01 contiene questi commit.
Correzioni di bug
- Ora
ActivityResultRegistry
ripristina sempre lo stato esatto che è stato salvato. (Idd56b) - Aggiungi il monitoraggio a
ComponentActivity.reportFullyDrawn
(Ic7632)
Contributo esterno
ComponentActivity
ora sostituiscereportFullyDrawn()
, consentendo la sua chiamata su tutti i livelli API e correggendo un arresto anomalo durante la chiamata di questo metodo senza l'autorizzazione di sistema appropriata sui dispositivi con API 19. Grazie Simon Schiller. (b/163239764, #103)
Versione 1.2.0-beta02
2 dicembre 2020
androidx.activity:activity:1.2.0-beta02
e androidx.activity:activity-ktx:1.2.0-beta02
vengono rilasciati. La versione 1.2.0-beta02 contiene questi commit.
Correzioni di bug
- Risolto un problema per cui l'API Activity Result non aspettava che il ciclo di vita fosse
STARTED
prima di fornire i risultati quando era registrata con unLifecycle
. (I109ea)
Contributo esterno
- È stata aggiornata la documentazione di
launch()
per indicare esplicitamente che può generare unActivityNotFoundException
. Grazie Michał Zieliński. (aosp/1493580)
Versione 1.2.0-beta01
1° ottobre 2020
androidx.activity:activity:1.2.0-beta01
e androidx.activity:activity-ktx:1.2.0-beta01
vengono rilasciati. 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 non allocato da utilizzare come codice richiestaregister()
, impedendo così l'eventuale overflow di numeri interi causato dall'incremento dei codici richiesta. (b/168779518)Gli osservatori
Lifecycle
vengono rimossi correttamente quando viene chiamata la funzioneunregister()
su unActivityResultLauncher
. (b/165608393)
Modifiche al comportamento
ActivityResultRegistry
ora genera unIllegalStateException
quando si tenta di chiamareregister()
con unLifecycleOwner
il cuiLifecycle
ha già raggiuntoSTARTED
. (b/165435866)
Documentazione aggiornata
- La documentazione di
ContextAware
rimanda aLifecycleOwner
per evidenziare i callbackLifecycle
come il luogo appropriato per gli eventi di creazione e distruzione. (aosp/1414152)
Versione 1.2.0-alpha08
19 agosto 2020
androidx.activity:activity:1.2.0-alpha08
e androidx.activity:activity-ktx:1.2.0-alpha08
vengono rilasciati. La versione 1.2.0-alpha08 contiene questi commit.
Nuove funzionalità
ComponentActivity
ora implementaContextAware
, consentendoti di aggiungere una o più istanzeOnContextAvailableListener
che riceveranno un callback prima della baseActivity.onCreate()
. (b/161390636)- Un'estensione Kotlin con sospensione
withContextAvailable()
ti consente di eseguire un blocco senza sospensione quando il contesto diventa disponibile e restituire un risultato. (I8290c) - Questa API viene utilizzata da
FragmentActivity
nel Fragment 1.3.0-alpha08 per ripristinare lo stato delFragmentManager
. Eventuali listener aggiunti alle sottoclassi diFragmentActivity
verranno eseguiti dopo questo listener. (I513da) - Questa API viene utilizzata da
AppCompatActivity
in AppCompat 1.3.0-alpha02. Eventuali listener aggiunti alle sottoclassi diAppCompatActivity
verranno eseguiti dopo questo listener. (I513da)
- Un'estensione Kotlin con sospensione
Correzioni di bug
- È stato risolto un problema con il controllo Lint
ActivityResultFragmentVersionDetector
che causava un arresto anomalo quando si utilizzava Lint 27.1.0 o versioni successive. (b/162155191)
Versione 1.2.0-alpha07
22 luglio 2020
androidx.activity:activity:1.2.0-alpha07
e androidx.activity:activity-ktx:1.2.0-alpha07
vengono rilasciati. La versione 1.2.0-alpha07 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un nuovo controllo lint
InvalidFragmentVersionForActivityResult
che verifica che tu stia utilizzando Fragment1.3.0-alpha07
quando utilizzi l'API Activity Result, evitando arresti anomali in fase di esecuzione dovuti a problemi di "codice richiesta non valido" e richieste di autorizzazione non funzionanti causati dall'utilizzo di versioni precedenti di Fragment. (b/152554847)
Contributo esterno
- È stato corretto un
ArrayIndexOutOfBoundsException
durante l'analisi dei risultati per il contrattoRequestPermission
ActivityResult. (I8f9e3, b/161057605)
Versione 1.2.0-alpha06
10 giugno 2020
androidx.activity:activity:1.2.0-alpha06
e androidx.activity:activity-ktx:1.2.0-alpha06
vengono rilasciati. La versione 1.2.0-alpha06 contiene questi commit.
Nuove funzionalità
- Ora puoi destrutturare la classe
ActivityResult
in Kotlin per accedere direttamente arequestCode
eintent
. (b/157212935) ActivityResultLauncher
ora ti consente di ottenere ilActivityResultContract
utilizzato per registrare il programma di avvio. (b/156875743)
Modifiche all'API
- Modifica incompatibile: il metodo
invoke()
inActivityResultRegistry
è stato rinominato inonLaunch()
. (b/157496491) - Il contratto
OpenMultipleDocuments
ora restituisce un elenco vuoto al callback registrato anzichénull
se non viene restituito alcun risultato. (b/157348014)
Versione 1.2.0-alpha05
20 maggio 2020
androidx.activity:activity:1.2.0-alpha05
e androidx.activity:activity-ktx:1.2.0-alpha05
vengono rilasciati. La versione 1.2.0-alpha05 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per
ViewTreeViewModelStoreOwner
da Lifecycle2.3.0-alpha03
eViewTreeSavedStateRegistryOwner
da SavedState1.1.0-alpha01
quando si utilizza unView
all'interno di unComponentActivity
. (aosp/1297993, aosp/1300264)
Modifiche all'API
- Il contratto
TakePicture
ora restituisce unboolean
che indica il successo anziché una miniaturaBitmap
, poiché questa operazione era supportata molto raramente dalle app della fotocamera durante la scrittura dell'immagine nelUri
fornito. (b/154302879) - Le estensioni
invoke()
suActivityResultLauncher
sono state rimosse a favore dell'utilizzo esplicito dilaunch()
per indicare meglio che si tratta di operazioni asincrone. Al pacchettoandroidx.activity.result
perActivityResultLauncher<Void>
eActivityResultLauncher<Unit>
sono state aggiunte estensioni Kotlin perlaunch
che eliminano la necessità di passare rispettivamentenull
oUnit
, rispecchiando il comportamento delle estensioniinvoke()
precedenti. (aosp/1304674, aosp/1304675) - I metodi
IntentSenderRequest.Builder
persetFlagsMask()
esetFlagsValues()
sono stati combinati in un unico metodosetFlags()
. (aosp/1302111)
Correzioni di bug
- Durante la registrazione di un
ActivityResultCallback
con unLifecycleOwner
, è stato risolto un problema per cui il callback veniva attivato prima che lo stato raggiungesseSTARTED
. (aosp/1309744)
Modifiche al comportamento
ActivityResultRegistry
ora genera codici di richiesta a partire da0xFFFF
anziché da0
, evitando così sovrapposizioni quando si utilizzanostartActivityForResult()
orequestPermissions()
in un'attività. (aosp/1302324)
Versione 1.2.0-alpha04
29 aprile 2020
androidx.activity:activity:1.2.0-alpha04
e androidx.activity:activity-ktx:1.2.0-alpha04
vengono rilasciati. La versione 1.2.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un contratto che può chiamare startIntentSenderForResult alle API ActivityResult. (b/153007517)
Modifiche all'API
- Il metodo
prepareCall()
è stato rinominato inregisterForActivityResult()
, sia inComponentActivity
qui che nel Frammento1.3.0-alpha04
. (aosp/1278717) - I contratti
GetContents
,OpenDocuments
eRequestPermissions
sono stati rinominati rispettivamente inGetMultipleContents
,OpenMultipleDocuments
eRequestMultiplePermissions
. (aosp/1280161) ComponentActivity
ora implementa l'interfacciaActivityResultRegisteryOwner
. (aosp/1290888)- - Le API
startActivityForResult()
/onActivityResult()
eonRequestPermissionsResult()
suComponentActivity
sono state ritirate. Utilizza le API di risultati attività. (b/154751887)
Correzioni di bug
- Quando utilizzi i contratti
GetMultipleContents
eOpenMultipleDocuments
e selezioni un singolo elemento, ora viene restituito correttamente al tuo callback. (b/152941153)
Versione 1.2.0-alpha03
1° aprile 2020
androidx.activity:activity:1.2.0-alpha03
e androidx.activity:activity-ktx:1.2.0-alpha03
vengono rilasciati. La versione 1.2.0-alpha03 contiene questi commit.
Nuove funzionalità
- Sono stati aggiunti i contratti
TakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
eCreateDocument
all'insieme di contratti predefiniti forniti daActivityResultContracts
. (aosp/1262482, aosp/1266916, aosp/1268960) - Le API Activity Result ora supportano l'avvio di un'attività per il risultato con un
ActivityOptionsCompat
facoltativo. (b/151860054)
Modifiche all'API
- Il contratto
TakePicture
ora accetta un inputUri
per la posizione in cui deve essere archiviata l'immagine. Il contratto precedente che non accetta input è stato rinominato inTakePicturePreview
. (aosp/1262482) - Il metodo
registerActivityResultCallback()
inActivityResultRegistry
è stato rinominato inregister()
. (aosp/1267621) - Il metodo
dispose()
inActivityResultLauncher
è stato rinominato inunregister()
eunregisterResultCallback()
inActivityResultRegistry
è stato rimosso. (aosp/1267621) - Il metodo
createIntent()
diActivityResultContact
ora accetta unContext
oltre all'input per consentire la creazione di intent espliciti. (aosp/1238800) - Ora un
ActivityResultContract
può sostituiregetSynchronousResult()
per fornire un risultato senza chiamarestartActivityForResult
. Viene utilizzato dai contrattiRequestPermission
eRequestPermissions
per fornire correttamente uno stato "Concesso" se le autorizzazioni richieste sono già state concesse. (b/151110799) - Il contratto
Dial
disponibile in precedenza è stato rimosso perchéIntent
non è destinato all'uso constartActivityForResult()
. (aosp/1266916) - Molte API di risultati attività non destinate a essere estese ora sono
final
. Sono inclusigetActivityResultRegistry()
, i metodiprepareCall()
, tutti i metodi diActivityResultRegistry
tranneinvoke()
e alcuni dei contratti predefiniti che non supportano gli extra facoltativi. (b/152439361)
Correzioni di bug
- È stato corretto un problema relativo a
NullPointerException
inActivityResultRegistry
quando si tenta di inviare risultati a un callback che non è ancora stato registrato di nuovo dopo una modifica della configurazione. OraActivityResultRegistry
conserva questi risultati in attesa e li invia quando il callback viene registrato di nuovo. (b/152137004)
Versione 1.2.0-alpha02
18 marzo 2020
androidx.activity:activity:1.2.0-alpha02
e androidx.activity:activity-ktx:1.2.0-alpha02
vengono rilasciati. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- ActivityResultRegistry:
ComponentActivity
ora fornisce unActivityResultRegistry
che ti consente di gestire i flussistartActivityForResult()
+onActivityResult()
erequestPermissions()
+onRequestPermissionsResult()
senza eseguire l'override dei metodi nell'attività o nel frammento, offre una maggiore sicurezza di tipo tramiteActivityResultContract
e fornisce hook per testare questi flussi. Consulta l'articolo aggiornato Ottenere un risultato da un'attività. (b/125158199)
Versione 1.2.0-alpha01
4 marzo 2020
androidx.activity:activity:1.2.0-alpha01
e androidx.activity:activity-ktx:1.2.0-alpha01
vengono rilasciati. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per l'API
ViewTreeLifecycleOwner.get(View)
aggiunta in Lifecycle2.3.0-alpha01
in modo che restituisca l'attività comeLifecycleOwner
per tutte le visualizzazioni aggiunte direttamente all'attività. (aosp/1182955)
Correzioni di bug
- È stata corretta una regressione introdotta nell'attività
1.1.0
quando viene eseguita su versioni precedenti della piattaforma, in cuionBackPressed()
causava unIllegalStateException
a causa di un bug inandroid.app.FragmentManager
. (b/146290338)
Versione 1.1.0
Versione 1.1.0
22 gennaio 2020
androidx.activity:activity:1.1.0
viene rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Integrazione di SavedState con ViewModel del ciclo di vita:
SavedStateViewModelFactory
è ora la factory predefinita utilizzata quando si utilizzaby viewModels()
, il costruttoreViewModelProvider
oViewModelProviders.of()
con unComponentActivity
o i suoi sottoclassi.
Versione 1.1.0-rc03
4 dicembre 2019
androidx.activity:activity:1.1.0-rc03
e androidx.activity:activity-ktx:1.1.0-rc03
vengono rilasciati. La versione 1.1.0-rc03 contiene questi commit.
Modifiche alle dipendenze
- L'attività ora dipende da Lifecycle
2.2.0-rc03
e Lifecycle ViewModel SavedState1.0.0-rc03
.
Versione 1.1.0-rc02
7 novembre 2019
androidx.activity:activity:1.1.0-rc02
e androidx.activity:activity-ktx:1.1.0-rc02
vengono rilasciati. La versione 1.1.0-rc02 contiene questi commit.
Modifiche alle dipendenze
- Ora l'attività 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 rilasciati senza modifiche rispetto a 1.1.0-beta01
. La versione 1.1.0-rc01 contiene questi commit.
Versione 1.1.0-beta01
9 ottobre 2019
androidx.activity:activity:1.1.0-beta01
e androidx.activity:activity-ktx:1.1.0-beta01
vengono rilasciati. La versione 1.1.0-beta01 contiene questi commit.
Modifiche alle dipendenze
- L'attività ora dipende da SavedState 1.0.0 stabile.
Versione 1.1.0-alpha03
5 settembre 2019
androidx.activity:activity:1.1.0-alpha03
e androidx.activity:activity-ktx:1.1.0-alpha03
vengono rilasciati. 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
- Ora l'attività dipende dal ciclo di vita
2.2.0-alpha04
.
Versione 1.1.0-alpha02
7 agosto 2019
androidx.activity:activity:1.1.0-alpha02
e androidx.activity:activity-ktx:1.1.0-alpha02
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
SavedStateViewModelFactory
è ora la fabbrica predefinita utilizzata quando si utilizzaby viewModels()
, il costruttoreViewModelProvider
oViewModelProviders.of()
con unComponentActivity
(b/135716331)
Versione 1.1.0-alpha01
2 luglio 2019
androidx.activity:activity:1.1.0-alpha01
e androidx.activity:activity-ktx:1.1.0-alpha01
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
activity
ora dipende dal ciclo di vita2.2.0-alpha02
. (aosp/1007817)activity-ktx
ha aggiunto una dipendenza dalifecycle-runtime-ktx
; non è più necessario aggiungerla esplicitamente alle dipendenze quando utilizziactivity-ktx
o librerie che dipendono daactivity-ktx
(ad esempiofragment-ktx
). (aosp/987162)
Versione 1.0.0
Versione 1.0.0
5 settembre 2019
androidx.activity:activity:1.0.0
e androidx.activity:activity-ktx:1.0.0
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Funzionalità principali della versione 1.0.0
- ComponentActivity:
ComponentActivity
funge da nuova classe di base perFragmentActivity
in Fragment1.1.0
e, per estensione, perAppCompatActivity
in AppCompat1.1.0
. - activity-ktx: il modulo
activity-ktx
include un'estensione della proprietà Kotlinby viewModels
per accedere ai ViewModel. Questo modulo viene incluso automaticamente quando includifragment-ktx
dal Frammento1.1.0
. - OnBackPressedDispatcher: come alternativa composable all'override di
onBackPressed()
, ora puoi registrare unOnBackPressedCallback
da qualsiasiLifecycleOwner
(ad esempio un frammento) per intercettare gli eventi del pulsante Indietro di sistema. Aactivity-ktx
è stato aggiunto un lambda con la versione del destinatarioaddCallback
. Per ulteriori dettagli, consulta la documentazione su come fornire la documentazione di navigazione a ritroso personalizzata. - Ritiro di onRetainCustomNonConfigurationInstance: le API
onRetainCustomNonConfigurationInstance()
egetLastCustomNonConfigurationInstance()
correlate sono state ritirate. Ti consigliamo vivamente di utilizzare i ViewModel per memorizzare lo stato non di configurazione, in quanto offrono una soluzione componibile adatta a qualsiasiViewModelStoreOwner
che chiarisce la proprietà degli oggetti mantenuti e fornisce un callbackonCleared()
per la pulizia delle risorse al termine dell'eliminazione dell'attività.
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 rilasciati senza modifiche rispetto a 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 rilasciati senza modifiche rispetto a 1.0.0-alpha08
. I commit inclusi in questa versione sono disponibili qui.
Versione 1.0.0-alpha08
7 maggio 2019
androidx.activity:activity:1.0.0-alpha08
e androidx.activity:activity-ktx:1.0.0-alpha08
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche all'API
- Modifica che comporta una interruzione: i metodi
addOnBackPressedCallback
eremoveOnBackPressedCallback
deprecati in precedenza inComponentActivity
sono stati rimossi. aosp/953857 - I metodi
setEnabled()
eisEnabled()
diOnBackPressedCallback
sono ora definitivi. b/131416833 - Il metodo
remove()
diOnBackPressedCallback
è ora definitivo. aosp/952720 OnBackPressedDispatcher
ora dispone di costruttori pubblici, che ti consentono di creare le tue istanze per i test e così via. aosp/953431onBackPressed()
perComponentActivity
è ora contrassegnato esplicitamente come@MainThread
aosp/952721
Correzioni di bug
- È stato corretto un
ConcurrentModificationException
durante la chiamata aremove()
dall'interno del metodohandleOnBackPressed()
di unOnBackPressedCalback
aggiunto con unLifecycleOwner
. b/131765095
Versione 1.0.0-alpha07
25 aprile 2019
androidx.activity:activity:1.0.0-alpha07
e androidx.activity:activity-ktx:1.0.0-alpha07
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche all'API
Questa release apporta modifiche significative alla gestione del onBackPressed()
. Per ulteriori dettagli, consulta la documentazione aggiornata relativa al back personalizzato.
- I metodi per
OnBackPressedCallback
eOnBackPressedDispatcher
sono stati contrassegnati come@MainThread
. (aosp/943813) - Il metodo
handleOnBackPressed()
non restituisce più unboolean
. OraOnBackPressedCallback
è una classe astratta che può essere attivata o disattivata.handleOnBackPressed()
verrà chiamato solo quando il nuovo metodoisEnabled()
restituirà true, nel qual caso devi gestire il pulsante Indietro. (aosp/944518) - I metodi
addCallback
diOnBackPressedDispatcher
non restituiscono più un'istanzaCancellable
.OnBackPressedCallback
ora contiene un metodoremove()
che soddisfa questa funzionalità, consentendoti di chiamareremove()
durantehandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
ora contiene un callback basato sul ricevitore peraddCallback
che accetta una funzione Lambda che implementahandleOnBackPressed()
e ha accesso aisEnabled
eremove()
(aosp/944520)
Versione 1.0.0-alpha06
3 aprile 2019
androidx.activity:activity:1.0.0-alpha06
e androidx.activity:activity-ktx:1.0.0-alpha06
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche all'API
- ComponentActivity ora contiene un secondo costruttore che accetta un
@LayoutRes int
, che sostituisce il comportamento precedente di annotare la classe AppCompatActivity con@ContentView
. Questo approccio funziona sia nei moduli dell'app che in quelli della libreria. (b/128352521) - Le API relative a
OnBackPressedCallback
su ComponentActivity sono state ritirate a favore del nuovoOnBackPressedDispatcher
, recuperabile tramitegetOnBackPressedDispatcher()
. (aosp/922523) - I metodi per aggiungere un nuovo
OnBackPressedCallback
alOnBackPressedDispatcher
ora restituiscono un oggettoCancellable
, consentendo la rimozione del callback senza richiedere un riferimento esplicito alOnBackPressedDispatcher
. (aosp/922523) - L'aggiunta di un
OnBackPressedCallback
con unLifecycleOwner
associato ora comporta l'aggiunta e la rimozione delOnBackPressedCallback
rispettivamente all'avvio e all'arresto del ciclo di vita. (aosp/922523)
Versione 1.0.0-alpha05
13 marzo 2019
androidx.activity:activity:1.0.0-alpha05
e
androidx.activity:activity-ktx:1.0.0-alpha05
vengono rilasciati. L'elenco completo dei commit inclusi in questa release è disponibile qui.
Nuove funzionalità
- Le ricerche di annotazioni
@ContentView
vengono ora memorizzate nella cache (b/123709449)
Versione 1.0.0-alpha04
30 gennaio 2019
androidx.activity:activity 1.0.0-alpha04
e androidx.activity:activity-ktx 1.0.0-alpha04
vengono rilasciati.
Nuove funzionalità
- È stato aggiunto il supporto per l'annotazione della classe
@ContentView
che consente di indicare quale file XML di layout deve essere espanso come alternativa all'utilizzo disetContentView()
. (aosp/837619)
Modifiche all'API
- È stata aggiunta una nota che indica che
getViewModelStore()
non deve essere sostituito e che verrà reso definitivo in una versione futura. Invia una richiesta di funzionalità se al momento stai sostituendo questo metodo. (aosp/837619)
Correzioni di bug
- Il modulo
activity
ora dipende dalla versione 2.1.0-alpha02 di ViewModel per corrispondere alla dipendenza del moduloactivity-ktx
.
Versione 1.0.0-alpha03
17 dicembre 2018
androidx.activity 1.0.0-alpha03
viene rilasciato.
Nuove funzionalità
- ComponentActivity ora implementa
BundleSavedStateRegistryOwner
e dipende dalla libreria SavedState appena rilasciata [aosp/815133] - ComponentActivity ora aggira un bug del framework Android che causava una perdita dell'ultima visualizzazione attivata da InputMethodManager [b/37122102]
Versione 1.0.0-alpha02
3 dicembre 2018
Modifiche all'API
- È stata aggiunta una nota che indica che
getLifecycle()
non deve essere sostituito e diventeràfinal
in una versione futura. Invia una richiesta di funzionalità se attualmente stai sostituendo questo metodo. (aosp/815834)
Versione 1.0.0-alpha01
5 novembre 2018
androidx.activity 1.0.0-alpha01
introduce
ComponentActivity
, una nuova classe di base di FragmentActivity
e
AppCompatActivity
esistenti.
Nuove funzionalità
- Ora puoi registrare un
OnBackPressedCallback
tramiteaddOnBackPressedCallback
per ricevere callbackonBackPressed()
senza dover eseguire l'override del metodo nella tua attività. - È stato aggiunto un nuovo delegato di proprietà Kotlin
by viewModels()
per il recupero diViewModel
da unComponentActivity
. - Gli eventi di input in attesa (ad esempio i clic) ora vengono annullati in
onStop()
.
Modifiche all'API
- L'implementazione di
LifecycleOwner
eViewModelStoreOwner
è stata trasferita daFragmentActivity
aComponentActivity
. onRetainCustomNonConfigurationInstance
è stato deprecato. Utilizza unViewModel
per archiviare gli oggetti che devono essere mantenuti in caso di modifiche alla configurazione.