Attività
Aggiornamento più recente | Release stabile | Candidato per la release | Versione beta | Release alpha |
---|---|---|---|---|
17 aprile 2024 | 1.9.0 | - | - | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza all'attività, devi aggiungere il Repository Maven di Google al tuo 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 ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se rilevi nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne una nuova. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.9
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 i componenti ai callback per gli eventionUserLeaveHint
.- Le API
OnBackPressedCallback
,BackHandler
ePredictiveBackHandler
ora avvisano quando si chiamaonBackPressedDispatcher.onBackPressed()
in caso di gestione, poiché questo causerà sempre l'interruzione dell'animazione predittiva indietro. Per ulteriori dettagli, consulta la guida alle best practice. - Le restanti API Activity sono state riscritte in Kotlin e tutte le estensioni precedentemente disponibili in
activity-ktx
sono state spostate inactivity
. Ora il campoactivity-ktx
è completamente vuoto.- Nell'ambito della conversione di
ActivityResultLauncher
in Kotlin, il metodogetContract
è ora una proprietà Kotlin astratta. Questa è una modifica compatibile con il programma binario, ma la sorgente viene interrotta se la tua 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
- L'attività ora dipende dal programma di installazione profilo 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 delle prestazioni dell'avvio dell'attività introdotta in Attività
1.9.0-alpha02
causata dalla chiamata diOnBackPressedDispatcher
durante la 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 si chiamaonBackPressedDispatcher.onBackPressed()
in caso di gestione, poiché questo causerà sempre l'interruzione dell'animazione predittiva indietro. Per ulteriori 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, questo Gesto Indietro predittivo viene annullato e il nuovo evento Indietro prende il comando per iniziare un nuovo Gesto Indietro predittivo. (I3482e).
- È stato risolto l'arresto anomalo durante l'accesso a
onBackPressedDispatcher
da unComponentActivity
per la prima volta da un thread in background. Ora puoi accedere in sicurezza aonBackPressedDispatcher
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 di Kotlin
ActivityResultRegistry
è stato riscritta in Kotlin. In questo modo si garantisce che il nulla dei termini generici sul contratto passati aregister
venga trasmesso correttamente alActivityResultLauncher
che ti è stato restituito. (I121f0).ActivityResult
è stato riscritta in Kotlin. Le estensioni KotlinActivityResult
che supportano la destrutturazione 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 è circondata da eventuali ritagli del display. (a3644b, b/311173461). - Da Attività
1.8.2
: è stato risolto il problema aggiuntivo passato al contratto di attività del selettore di fotoACTION_SYSTEM_FALLBACK_PICK_IMAGES
per trasmettere correttamente la chiaveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, anziché utilizzare l'elemento aggiuntivo con la chiave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Gli OEM che implementano un selettore di foto di riserva del sistema sono vivamente consigliati per supportare entrambi gli accessori al fine di 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 i componenti ai callback per gli eventionUserLeaveHint
. (I54892)
Modifiche alle API
ComponentActivity
è stato riscritta in Kotlin. (I14f31).ActivityResultCaller
è stato riscritta in Kotlin. (Ib02e4).ActivityResultLauncher
è stato riscritta in Kotlin. Nell'ambito di questa conversione, il metodogetContract
è ora una proprietà Kotlin astratta. Questa è una modifica compatibile con il programma binario, ma la sorgente viene interrotta se la tua implementazione diActivityResultLauncher
è scritta in Kotlin. (Id4615)- Ora
PickVisualMediaRequest
ha lo stesso livello API minimo 19 del contratto relativo ai risultati di attività diPickVisualMedia
. (Id6e21)
Aggiornamento delle dipendenze
- L'attività ora dipende dal
1.13.0-alpha01
principale. (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 risolto il problema aggiuntivo trasferito al
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
del contratto di attività del selettore di foto per passare correttamente la chiaveEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, anziché utilizzare l'elemento aggiuntivo con la chiave"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Gli OEM che implementano un selettore di foto di riserva del sistema sono vivamente consigliati per supportare entrambi gli accessori al fine di 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
- Ora
OnBackPressedDispatcher
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: ora
OnBackPressedCallback
offre nuovi callback predittivi per gestire l'avvio del gesto Indietro, l'avanzamento nel gesto e l'annullamento del gesto Indietro, oltre al callbackhandleOnBackPressed()
precedente per quando viene confermato il gesto Indietro. Inoltre, è dotato diPredictiveBackHandler
componibile per gestire gli eventi predittivi del gesto Indietro in Scrittura attività. Fornisce un flusso di oggetti BackEventCompat che devono essere raccolti nella lamba sospesa 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. Ora gli sviluppatori dovrebbero utilizzare OnBackPressedDispatcher
anziché eseguire l'override di questo metodo.
- EdgeToEdge - È stato aggiunto
ComponentActivity.enableEdgeToEdge()
per configurare facilmente il display edge-to-edge in modo da essere 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à
Scrittura attività ha aggiunto un nuovo componibile
PredictiveBackHandler
per gestire gli eventi predittivi del gesto Indietro. Fornisce unFlow
diBackEventCompat
oggetti che devono essere raccolti nella lamba sospesa 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 } }
Include inoltre un avviso relativo al tempo di compilazione tramite regola lint per garantire che
Flow
chiamicollect()
. (Id2773, b/294884345)onBackPressedDispatcher
inComponentActivity
viene ora inizializzato in modo lento, in modo da essere creato solo quando necessario. (I0bf8e).
Correzioni di bug
ComponentActivity
non mostrerà più un NPE su Android 13 quando riceverà 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à
- Ora l'
OnBackPressedDispatcher
annulla correttamente tutti i callback rimossi durante un Gesto predittivo Indietro. (I3f90f)
Modifiche alle API
- Ora quando passi
SystemBarStyle.auto
all'APIenableEdgeToEdge
, 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 alle API
- L'attività ora fornisce una classe
BackEventCompat
che funge da versione compatibile con le versioni precedenti diBackEvent
e disaccoppiata dalla classeBackEvent
del framework. - Modifica di interruzione: i metodi
handleOnBackStarted
ehandleOnBackProgressed
diOnBackPressedCallback
ora ricevono un'istanzaandroidx.activity.BackEventCompat
anziché una classe del frameworkandroid.window.BackEvent
. Sono state aggiornate anche le API@VisibleForTesting
equivalenti suOnBackPressedDispatcher
. - Il costruttore di
OnBackPressedDispatcher
ora utilizza un'istanzaConsumer<Boolean>
facoltativa che consente ai proprietari del supervisore di ricevere un callback ogni volta che il numero di callback attivati cambia da zero a zero o viceversa.
Correzioni di bug
- Da Attività
1.7.2
: risolvi i problemi di 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. Questo è stato rilasciato da un ramo interno.
Correzioni di bug
- Dall'Attività 1.7.1: - Non si verifica più la perdita di
ReportFullyDrawExecuter
quando utilizziComponentActivity
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. 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 ritirato a favore delle API per la gestione. Ora gli sviluppatori dovrebbero 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 della struttura ad albero prima di impostare la visualizzazione dei contenuti. (Ibdce0, b/261314581).
Correzioni di bug
- Risolto il problema per cui i frammenti venivano invalidati in modo errato MenuHosts e causava 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
- Dalla sezione Attività
1.7.0-rc01
: l'attività ora 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. Questo è stato creato da un ramo interno.
Nuove funzionalità
- La classe
OnBackPressedCallback
ora contiene nuovi callback di avanzamento predittivo per gestire l'avvio del gesto Indietro, l'avanzamento nel gesto e l'annullamento del gesto Indietro, oltre al callbackhandleOnBackPressed()
precedente per quando viene eseguito il commit del gesto Indietro.
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
- Correggi l'arresto anomalo di
ReportDrawn
durante l'uscita 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 divulga più quando utilizziComponentActivity
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 relativi alle attività del selettore di foto in
PickVisualMedia
ePickMultipleVisualMedia
sono stati aggiornati in modo da includere un'ulteriore riserva di riserva per i casi in cuiMediaStore.ACTION_PICK_IMAGES
non sarà disponibile, il che consente agli OEM e alle app di sistema, come Google Play Services, di 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 userà questo metodo di riserva se disponibile prima di tornare a usareIntent.ACTION_OPEN_DOCUMENT
, che deve continuare a supportare tutti i dispositivi con API 19 e versioni successive. ComponentDialog
ora implementaSavedStateRegistryOwner
e ha accesso al proprioSavedStateRegistry
e impostaSavedStateRegistryOwner
perViewTree
. Ora è possibile utilizzare Jetpack Compose all'interno di unComponentDialog
in quanto soddisfa sia iLifecycleOwner
che iSavedStateRegistryOwner
collegati a Window tramite i requisiti delle APIViewTree
.IntentSenderRequest.Builder.setFlags()
ora consente di impostare più flag daIntent
, anziché un solo flag.
Conversione di Kotlin
Alcune classi di attività sono state convertite in Kotlin. Tutte le classi convertite mantengono la compatibilità binaria con le versioni precedenti. Le seguenti classi presentano modifiche incompatibili con l'origine 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 queste classi sono state convertite 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 generare report 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 tuoi requisiti di tempistica e non devono essere chiamate nell'ambito di una chiamata onDraw
.
Si consiglia di abilitare queste API:
- Segnalazione del runtime Android al completamento dell'avvio per garantire che tutto il codice eseguito durante una sequenza di avvio multi-frame sia incluso e prioritario per la compilazione in background.
- Segnalazione di Macrobenchmark e Play Vitals quando la tua applicazione deve essere considerata completamente utilizzata per le metriche di avvio, in modo da poter monitorare le prestazioni.
Sono state aggiunte tre API Activity Compose per rendere più agevole l'utilizzo del FullyDrawnReporter
dai singoli componibili:
ReportDrawn
indica che il componibile è immediatamente pronto per l'interazione.ReportDrawnWhen
accetta un predicato (ad esempiolist.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
- L'attività ora dipende dal ciclo di vita
2.6.1
. (8fc31d) - L'attività ora 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
- L'attività ora 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 alle API
- L'azione e le funzionalità aggiuntive utilizzate dai contratti
PickVisualMedia
ePickMultipleVisualMedia
come alternativa per 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 questa funzionalità di riserva è ancora limitata alle sole 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 consente di impostare più flag daIntent
, anziché un solo flag. (Iac04c)
Correzioni di bug
- L'elemento di riserva 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. Si tratta di una modifica incompatibile con l'origine 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 l'origine per le classi scritte in Kotlin. Ora devi sostituire la proprietàonBackPressedDispatcher
anziché implementare la precedente funzionegetOnBackPressedDispatcher
. (Ia277d)ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
eOnBackPressedDispatcher
sono ora 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 di attività di
PickVisualMedia
ePickMultipleVisualMedia
utilizzeranno ora un selettore di foto fornito da Google Play Services, ove disponibile, nei casi in cui il sistema Android fornisse il 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. È consigliabile utilizzare la nuova APIisPhotoPickerAvailable(Context)
, che verrà restituita se è disponibile uno dei selettori di foto. (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
, in quanto soddisfa sia iLifecycleOwner
che gliSavedStateRegistryOwner
collegati a Window tramite i requisiti delle API ViewTree. (Idca17, I73468 b/261162296)
Modifiche alle API
- È stato aggiunto un componibile
ReportDrawn
che contrassegna immediatamente l'attività come pronta per la chiamata areportFullyDrawn
. (Ic5b14, b/259687964).
Conversioni di Kotlin
- Le classi
ActvitiyResultCallback
eOnBackPressedCallback
sono state entrambe convertite in Kotlin, mantenendo al contempo la compatibilità di origine e binaria. (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
- Dalla sezione Attività
1.6.1
: è stato risolto un problema a causa del quale il contratto relativo al risultato di attività diPickMultipleVisualMedia
non viene avviato sui dispositivi Android R quando viene utilizzato 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 generare report 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 tuoi requisiti di tempistica e non devono essere chiamate nell'ambito di una chiamata onDraw
.
Si consiglia di abilitare queste API:
- Segnalazione del runtime Android al completamento dell'avvio per garantire che tutto il codice eseguito durante una sequenza di avvio multi-frame sia incluso e prioritario per la compilazione in background.
- Segnalazione di Macrobenchmark e Play Vitals quando la tua applicazione deve essere considerata completamente utilizzata per le metriche di avvio, in modo da poter monitorare le prestazioni.
Sono state aggiunte due API Activity Compose per rendere più agevole l'utilizzo del FullyDrawnReporter
dai singoli componibili:
ReportDrawnWhen
accetta un predicato (ad esempiolist.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
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 a causa del quale il contratto relativo ai risultati di attività di
PickMultipleVisualMedia
non veniva avviato sui dispositivi Android R quando si utilizzava il valore predefinito dimaxItems
. (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 aver fornito 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. OnBackInvokedCallback
è stato integrato in Android 13 nell'OnBackPressedDispatchers
fornita daComponentActivity
eComponentDialog
. Ciò garantisce che tutte le API basate suOnBackPressedDispatcher
funzionino quando si abilita un gesto Indietro 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 registraOnBackInvokedCallback
conPRIORITY_DEFAULT
anzichéPRIORITY_OVERLAY
. (I3901f)- D'ora in poi, per i corsi che estendono
ComponentActivity
verranno sempre inviati entrambi i callbackonMultiWindowModeChanged()
. (Ic4d85) ActivityResultRegistry
non restituirà più un risultato aActivityResultCallback
quando la chiamatalaunch
genera un valoreException
e il callback è stato registrato senzaLifecycleOwner
. (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
- La libreria
Activity
ora dipende dal ciclo di vita2.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
quando si utilizzano versioni dell'SDK precedenti alla 33. (Ic32e1). - Ora per i corsi che eseguono l'override del callback
onPictureInPictureModeChanged()
diComponentActivity
verranno sempre inviati i callback. (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 alle API
- Sono stati contrassegnati i metodi
startActivityForResult
estartIntentSenderForResult
deprecati suComponentActivity
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 un elementoException
e il callback è stato registrato senzaLifecycleOwner
. (Ia7ff7, b/238350794) - Da Attività
1.5.1
: oraComponentActivity
invierà correttamente le chiamate di menu agli override dionPrepareOptionMenu()
,onCreateOptionsMenu()
eonOptionsItemSelected()
senza dover chiamare la super funzione. (Ie33c5, b/238057118).
Aggiornamento delle dipendenze
- Dalla sezione Attività
1.5.1
: la raccoltaActivity
ora dipende dalla versione diLifecycle
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 privato di pre-release e non ha commit pubblici.
Modifiche alle API
minCompileSdk
è ora alla 33a per allinearsi all'SDK Tiramisu Beta 3
Correzioni di bug
- È stato risolto l'arresto anomalo sui dispositivi meno recenti durante il controllo delle estensioni dell'SDK per
PickVisualMedia
ActivityResultContract
, in modo che ora dovrebbe funzionare 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
- Risolto un errore in
PickVisualMediaRequest
per cui il tentativo di creare una richiesta, tramite Builder o la funzione Kotlin di livello superiore, comportava un overflow dello stack. - L'
OnBackInvokedCallback
in Android 13 Dev Beta 2 è stato integrato nell'OnBackPressedDispatcher
fornito daComponentDialog
. Ciò garantisce che tutte le API basate suOnBackPressedDispatcher
funzionino quando si abilita un gesto Indietro 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 aver fornito 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. - L'
OnBackInvokedCallback
in Android 13 Dev Beta 1 è stato integrato nell'OnBackPressedDispatcher
fornito daComponentActivity
. Ciò garantisce che tutte le API basate suOnBackPressedDispatcher
funzionino quando si abilita un gesto Indietro 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 in Android 13 Dev Preview 2 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 aActivityResultCallback
quando la chiamatalaunch()
genera un valoreException
e il callback è stato registrato senzaLifecycleOwner
. (Ia7ff7, b/238350794)Ora
ComponentActivity
invierà correttamente le chiamate di menu agli override dionPrepareOptionMenu()
,onCreateOptionsMenu()
eonOptionsItemSelected()
senza dover chiamare la super funzione. (Ie33c5, b/238057118).
Aggiornamento delle dipendenze
- La libreria
Activity
ora dipende dal ciclo di vita2.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
- ComponentiDialog -
ComponentDialog
è una sottoclasse diDialog
che include unOnBackPressedDispatcher
che verrà richiamato quando verrà premuto il pulsante Indietro del sistema e la finestra di dialogo è visibile. È importante sottolineare che questa sottoclasse imposta ancheViewTreeOnBackPressedDispatcherOwner
, consentendo alle visualizzazioni di recuperare in modo generico il supervisore corretto indipendentemente dal fatto che esista in unComponentActivity
o unComponentDialog
. - Interfacce di callback:
ComponentActivity
ora implementa una serie di interfacce di callback modulari che possono essere utilizzate al posto dei callbackActivity
. Queste interfacce includono le seguenti:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- Integrazione di CreationExtras.
ComponentActivity
ora è in grado di fornire unViewModelProvider.Factory
stateless tramiteCreationExtras
del ciclo di vita2.5.0
.
Altre modifiche
- Il costruttore senza parametri per
ActivityResultContracts.CreateDocument
è stato ritirato e sostituito con un nuovo costruttore che utilizza un tipo MIME concreto (ad es. "image/png") come richiesto daIntent.ACTION_CREATE_DOCUMENT
.
Versione 1.5.0-rc01
11 maggio 2022
Le versioni 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
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
- L'attività ora 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 anche
onPanelClosed()
diComponentActivity
chiama il superonPanelClosed()
, 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'uso diCreationExtras
anche quando è 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 alle 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 in modalità multi-finestra. (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 gli extra ViewModel Creation, introdotti nell'ambito del ciclo di vita2.5.0-alpha01
. (Ie7e00, b/207012584).- È stata aggiunta
ComponentDialog
, una sottoclasseDialog
che include unOnBackPressedDispatcher
che verrà richiamata quando verrà premuto il pulsante Indietro del sistema quando la finestra di dialogo è visibile. È importante sottolineare che questa sottoclasse imposta ancheViewTreeOnBackPressedDispatcherOwner
, consentendo alle viste di recuperare il supervisore corretto indipendentemente dal fatto che esista inComponentActivity
oComponentDialog
. (I8a1bc) ComponentActivity
ora implementa la nuova interfaccia diOnNewIntentProvider
per consentire a qualsiasi componente di ricevere questi eventi. (If1f8b)ComponentActivity
ora implementa la nuova interfaccia diOnConfigurationChangedProvider
per consentire a qualsiasi componente di ricevere questi eventi. (If623b)- Ora
ComponentActivity
implementa la nuova interfaccia diOnTrimMemoryProvider
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 utilizza un tipo MIME concreto (ad es."image/png"
) come richiesto daIntent.ACTION_CREATE_DOCUMENT
. (I2bec6). - L'elemento
OnBackPressedDispatcherOwner
associato a una vista ora può essere recuperato tramite ilViewTreeOnBackPressedDispatcherOwner
, invece di ricorrere alla trasmissione diContext
. (I74685)
Correzioni di bug
- È stato risolto l'arresto anomalo durante l'accesso per la prima volta a un
ViewModel
da un callbackregisterForActivityResult()
o le richiamate a unLifecycleObserver
aggiunto come parte 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'istanzaMenuProvider
all'attività. Facoltativamente, ogniMenuProvider
può essere aggiunto con unLifecycle
che controllerà automaticamente la visibilità di queste voci di menu in base allo statoLifecycle
e gestirà la rimozione diMenuProvider
quandoLifecycle
viene eliminato. - La classe
ActivityResultContract
è stata riscritta in Kotlin per garantire che gli sviluppatori che scrivono contratti personalizzati in Kotlin possano definire il nulla o i valori corretti per le loro classi di input e output. - La classe
ActivityResultContracts
e i relativi contratti sono stati riscritti in Kotlin per garantire il nulla osta adeguato.
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 inActivityResultCallback
quando la chiamatalaunch
genererà un valoreException
. (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 alle API
- È stato corretto il tipo di
ActivityResultContracts.OpenMultipleDocuments
eActivityResultContracts.GetMultipleContents
che causava l'utilizzo di un tipo di outputList<? extends Uri>
durante l'utilizzo del 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 usa Kotlin tramite i loro oggettiCompanion
ora pubblici. (aosp/1832555)
Aggiornamenti alla documentazione
- Il messaggio relativo al ritiro delle API ora gestito dalle API Activity Result, 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'artefatto
activity-compose
ora contiene un errore di lintLaunchDuringComposition
che ti impedisce di chiamare il metodolaunch
diActivityResultLauncher
nell'ambito della composizione, in quanto la composizione dovrebbe 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 la correttezza nulla delle loro classi di input e di output. (I8a8f5). - La classe
ActivityResultContracts
e i relativi contratti sono stati riscritti in Kotlin per garantire il corretto nulla. (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'istanzaMenuProvider
all'attività. Facoltativamente, ogniMenuProvider
può essere aggiunto con unLifecycle
che controllerà automaticamente la visibilità di queste voci di menu in base allo statoLifecycle
e gestirà la rimozione diMenuProvider
quandoLifecycle
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)
}
Modifiche del comportamento
- L'
ActivityResultRegistry
ora genererà unIllegalStateException
quando tenti di chiamarelaunch()
su unActivityResultLauncher
che non è stato registrato o che non è stato registrato. (Ida75d, b/192567522)
Contributi esterni
- Grazie dmitrilc per aver corretto un errore ortografico nella documentazione di
ActivityResult
. (n. 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
- L'attività ora dipende da Kotlin
1.5.21
. - Ora Scrittura attività dipende da Compose
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
- Artefatto di Compose attività: l'elemento
activity-compose
fornisce il metodo di estensionesetContent
per ospitare la UI di Jetpack Compose in un'attività e wrapper specifici di Compose per interagire con le APIComponentActivity
per la gestione del pulsante Indietro del sistema e delle API Activity Result. Per ulteriori dettagli, consulta la documentazione. - Contratto CaptureVideo: l'
ActivityResultContract
CaptureVideo
sostituisce il contrattoTakeVideo
, ora deprecato, e restituisce un valore booleano che indica l'esito positivo di molte app fotocamera. - Monitoraggio della visualizzazione dei suggerimenti Picture in picture: gli utenti di
activity-ktx
ora possono utilizzare il metodo dell'estensionetrackPipAnimationHintView
suActivity
per ricreare automaticamentePictureInPictureParams
con la nuova posizione della vista mentre 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
vengono ora salvati e ripristinati correttamente, in modo che i callback non vengano 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 da 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.
Aggiornamento di activity-compose
in base a Compose 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
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 alle API
- Il metodo
@Composable registerForActivityResult()
precedentemente obsoleto è stato rimosso. UsarememberLauncherForActivityResult()
. (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 booleano inActivityResultCallback
che indica se il video è stato salvato correttamente nell'URI specificato. Questo sostituisce il contrattoTakeVideo
ormai deprecato, in quanto le app fotocamera molto raramente supportavano la restituzione di una bitmap di miniature, rendendo il risultato inutile. (Ie21f2, b/185938070). - È stata aggiunta la nuova API
Activity#setPipAnimationHintView
per aggiornare il suggerimento rettangolo di origine di PipParams ogni volta che la vista si sposta. (I9063d)
Modifiche alle API
- La funzione
rememberLauncherForActivityResult
ora restituisce un Avvio app che ritira la funzioneunregister()
. La registrazione e l'annullamento della registrazione dell'Avvio app vengono gestiti automaticamente darememberLauncherForActivityResult
. (I2443e).
Compatibilità di Scrivi
androidx.activity:activity-compose:1.3.0-alpha08
è compatibile solo con Compose1.0.0-beta07
e versioni 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
rememberLauncherForActivityResult
ora restituisce un riferimento stabile alla stessa istanzaActivityResultLauncher
anche se il contratto cambia a causa di ricomposizioni. (Id2d6d)- L'utilizzo di versioni instabili di Fragments precedenti 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 alle API
- L'API
registerForActivityResult()
è stata rinominata inrememberLauncherForActivityResult()
per indicare meglio che il valoreActivityResultLauncher
restituito è un oggetto gestito che viene memorizzato per tuo conto. Se si tenta di chiamareunregister
, l'elementoActivityResultLauncher
restituito genererà ora un errore. (I2bb6d). LocalOnBackPressedDispatcherOwner.current
eLocalActivityResultRegistryOwner.current
ora restituiscono un valore nullo per determinare meglio se è disponibile nella composizione attuale. Le API che richiedono rispettivamente queste API, comeBackHandler
erememberLauncherForActivityResult()
, ora genereranno un errore più descrittivo se il proprietario sottostante non viene trovato. OraNavHost
funziona anche quando non viene trovato unOnBackPressedDispatcherOwner
, come nel caso dell'anteprima diNavHost
. (I7d8b4).
Correzioni di bug
BackHandler
ora intercetti correttamente le pressioni a ritroso nel caso in cui l'attività siaSTOPPED
, quindi di nuovoSTARTED
e altri callback sono stati aggiunti con un LifecycleOwner. (I71de6, b/182284739).- L'utilizzo dell'estensione del metodo
launch()
con unActivityResultContract
personalizzato con 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
- Dall'Attività 1.2.2: è stato risolto un problema nel controllo lint di
InvalidFragmentVersionForActivityResult
che generava un falso positivo quando veniva usato un frammento 1.3.1 o versioni successive. (I54da1, b/182388985) - Dall'Attività 1.2.2:
ComponentActivity
ora evitaClassNotFoundException
quando avvii unaIntent
da unaActivityResultContract
che in precedenza era tenuta come extra in un'altraIntent
. (Ieff05, b/182906230).
Aggiornamenti delle dipendenze
- Dalla sezione 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
: oraRequestMultiplePermissions
restituisce sempre i risultati per tutte le autorizzazioni richieste, anziché solo per le autorizzazioni che non erano state concesse in precedenza. (I50bc3, b/180884668). - Dall'attività
1.2.1
: oraActivityResultRegistry
garantisce che le richiestelaunch()
in corso restituiscano i risultati anche seunregister()
, poiregister()
di nuovo con la stessa chiave. (I9ef34, b/181267562). - Scrittura attività non aggiunge più dipendenze di test a classpath di runtime. (Ifd8b3)
- Risolto il problema di
BackHandler
per cui la funzione lambdaonBack
impostata in precedenza veniva ancora utilizzata dopo la ricomposizione. (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 degli elementi componibili. (Ia7851, b/172690553)
Modifiche alle API
- Ora
LocalOnBackPressedDispatcherOwner
ha una funzioneprovides
che può essere utilizzata conCompositionLocalProvider
, che sostituisce 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
- Risolto un problema di Scrittura
1.3.0-alpha01
che causa un'eccezioneNoSuchMethodError: No static method setContent
quando si utilizza Scrivi1.0.0-alpha12
. Tutti gli utenti di Compose devono dipendere da1.3.0-alpha02
e versioni successive. (b/179911234)
Modifiche alle API
- L'API
BackHandler
può essere utilizzata per consentire a un componibile 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 aiutanti specifici di Jetpack Compose per le API specifiche diandroidx.activity
.ComponentActivity.setContent
è stato spostato daandroidx.compose.ui.platform.setContent
aandroidx.activity.compose.setContent
. (Icf416)
Problemi noti
- L'utilizzo di Scrittura nell'attività
1.3.0-alpha01
e delle librerie che dipendono da questo, 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 ActivityResultRegistry vengono ora salvati e ripristinati correttamente in modo che i callback non vengano 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 unActivityResultContract
personalizzato con un inputUnit
non causerà più unNullPointerException
(I76282, b/183837954) - È stato corretto un falso errore lint positivo che indicava di utilizzare il frammento
1.3.0
quando si usava una build istantanea, 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 il problema relativo al controllo lint di
InvalidFragmentVersionForActivityResult
che causava un falso positivo durante l'utilizzo del frammento 1.3.1 o versioni successive. (I54da1, b/182388985) ComponentActivity
ora evita unaClassNotFoundException
durante il lancio di unaIntent
da unaActivityResultContract
che in precedenza si svolgeva come extra in un'altraIntent
. (Ieff05, b/182906230).
Aggiornamenti delle dipendenze
- L'attività ora 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
- Ora
RequestMultiplePermissions
restituisce sempre i risultati per tutte le autorizzazioni richieste, anziché solo le autorizzazioni che non erano state concesse in precedenza. (I50bc3, b/180884668). ActivityResultRegistry
ora assicura 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.
Importanti modifiche dalla versione 1.1.0
- API dei risultati di attività: ora
ComponentActivity
fornisce unActivityResultRegistry
che ti consente di gestire i flussistartActivityForResult()
+onActivityResult()
nonchérequestPermissions()
+onRequestPermissionsResult()
senza eseguire l'override dei metodi nell'Attività o nel frammento, offre una maggiore sicurezza dei tipi tramiteActivityResultContract
e fornisce hook per testare questi flussi. Consulta la pagina aggiornata Ottenere un risultato da un'attività.
ContextAware
:ComponentActivity
ora implementaContextAware
, consentendoti di aggiungere una o più istanzeOnContextAvailableListener
che riceveranno un callback prima della baseActivity.onCreate()
.- Un'estensione Kotlin sospesa
withContextAvailable()
ti consente di eseguire un blocco non in pausa quando il contesto diventa disponibile e restituire un risultato. - Questa API viene utilizzata da
FragmentActivity
in Fragment 1.3.0 per ripristinare lo stato diFragmentManager
. Qualsiasi listener aggiunto alle sottoclassi diFragmentActivity
verrà eseguito dopo questo listener. - Questa API viene utilizzata da
AppCompatActivity
in AppCompat 1.3.0-alpha02 o versioni successive. Qualsiasi listener aggiunto alle sottoclassi diAppCompatActivity
verrà eseguito dopo questo listener.
- Un'estensione Kotlin sospesa
Assistenza
ViewTree
: oraComponentActivity
supporta le APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
eViewTreeSavedStateRegistryOwner
aggiunte in Ciclo di vita2.3.0
e SavedState1.1.0
in modo da restituire l'attivitàLifecycleOwner
,ViewModelStoreOwner
eSavedStateRegistryOwner
per qualsiasi vista aggiunta direttamente aComponentActivity
.
- reportFullyDrawn(): è stato eseguito il backport del metodo
Activity
direportFullyDrawn()
inComponentActivity
per funzionare a tutti i livelli API, correggendo un arresto anomalo nell'API 19 e aggiungendo il tracciamento 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
- L'
ActivityResultRegistry
ora ripristina sempre lo stato esatto salvato. (Idd56b) - Aggiungi tracciamento a
ComponentActivity.reportFullyDrawn
(Ic7632)
Contributi esterni
- Ora
ComponentActivity
esegue l'override direportFullyDrawn()
, consentendo la chiamata a tutti i livelli API e correggendo un arresto anomalo quando si chiama questo metodo senza l'autorizzazione di sistema appropriata sui dispositivi con API 19. Grazie Simon Schiller! (b/163239764, n. 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 il problema per cui l'API Activity Result non aspettava il ciclo di vita
STARTED
prima di inviare i risultati quando veniva registrata con unLifecycle
. (I109ea).
Contributi esterni
- È stata aggiornata la documentazione relativa a
launch()
per segnalare 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
ActivityResultRegistry
ora genera numeri interi in modo casuale finché non ne trova uno che non è allocato per essere utilizzato come codice di richiestaregister()
, evitando così il possibile overflow di numeri interi causato dall'incremento dei codici di richiesta. (b/168779518)Gli osservatori
Lifecycle
sono stati rimossi correttamente quando chiamiunregister()
su unActivityResultLauncher
. (b/165608393)
Modifiche del comportamento
ActivityResultRegistry
ora genera unIllegalStateException
quando tenta di chiamareregister()
con unLifecycleOwner
il cuiLifecycle
ha già raggiuntoSTARTED
. (b/165435866)
Documentazione aggiornata
- La documentazione di
ContextAware
contiene link aLifecycleOwner
per evidenziare i callbackLifecycle
come luogo appropriato per gli eventi di creazione e eliminazione. (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
, permettendoti di aggiungere una o più istanzeOnContextAvailableListener
che riceveranno un callback prima della baseActivity.onCreate()
. (b/161390636)- Un'estensione Kotlin sospesa
withContextAvailable()
ti consente di eseguire un blocco non in pausa quando il contesto diventa disponibile e restituire un risultato. (I8290c) - Questa API viene utilizzata da
FragmentActivity
in Fragment 1.3.0-alpha08 per ripristinare lo stato diFragmentManager
. Qualsiasi listener aggiunto alle sottoclassi diFragmentActivity
verrà eseguito dopo questo listener. (I513da) - Questa API viene utilizzata da
AppCompatActivity
in AppCompat 1.3.0-alpha02. Qualsiasi listener aggiunto alle sottoclassi diAppCompatActivity
verrà eseguito dopo questo listener. (I513da)
- Un'estensione Kotlin sospesa
Correzioni di bug
- Risolto il 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
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
per verificare che stai utilizzando Fragment1.3.0-alpha07
quando utilizzi l'API Activity Result, evitando arresti anomali di runtime dovuti a problemi di "codice di richiesta non valido" e richieste di autorizzazione non funzionanti causate dall'utilizzo di versioni precedenti di Fragments. (b/152554847)
Contributi esterni
- È stato corretto un
ArrayIndexOutOfBoundsException
durante l'analisi dei risultati per il contratto relativo al risultato di attività diRequestPermission
. (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 l'appActivityResultContract
utilizzata per registrare Avvio app. (b/156875743)
Modifiche alle API
- Modifica di interruzione: il metodo
invoke()
suActivityResultRegistry
è stato rinominato inonLaunch()
. (b/157496491) - Se non viene restituito alcun risultato, il contratto
OpenMultipleDocuments
ora restituisce un elenco vuoto invece dinull
al callback registrato. (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à
- Aggiunto il supporto per
ViewTreeViewModelStoreOwner
da Ciclo di vita2.3.0-alpha03
eViewTreeSavedStateRegistryOwner
da SaveState1.1.0-alpha01
quando si utilizza unView
in unComponentActivity
. (aosp/1297993, aosp/1300264)
Modifiche alle API
- Il contratto
TakePicture
ora restituisce unboolean
che indica l'esito positivo anziché una miniaturaBitmap
, poiché questa azione era molto raramente supportata dalle app della fotocamera quando si scriveva l'immagine nell'elementoUri
fornito. (b/154302879) - Le estensioni
invoke()
suActivityResultLauncher
sono state rimosse a favore dell'uso esplicito dilaunch()
per indicare meglio che si tratta di operazioni asincrone. Al pacchettoandroidx.activity.result
diActivityResultLauncher<Void>
eActivityResultLauncher<Unit>
sono state aggiunte estensioni Kotlin perlaunch
che eliminano la necessità di trasmettere rispettivamentenull
oUnit
, eseguendo il mirroring di questo comportamento dalle precedenti estensioniinvoke()
. (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 raggiungaSTARTED
. (aosp/1309744)
Modifiche del comportamento
- L'
ActivityResultRegistry
ora genera codici di richiesta a partire dal giorno0xFFFF
anziché dal giorno0
, per evitare sovrapposizioni quando utilizzistartActivityForResult()
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 alle API
- Il metodo
prepareCall()
è stato rinominato inregisterForActivityResult()
, sia suComponentActivity
qui sia nel Frammento1.3.0-alpha04
. (aosp/1278717) - I contratti
GetContents
,OpenDocuments
eRequestPermissions
sono stati rinominati rispettivamenteGetMultipleContents
,OpenMultipleDocuments
eRequestMultiplePermissions
. (aosp/1280161) - Ora
ComponentActivity
implementa l'interfacciaActivityResultRegisteryOwner
. (aosp/1290888). - - Le API
startActivityForResult()
/onActivityResult()
eonRequestPermissionsResult()
suComponentActivity
sono state ritirate. Utilizza le API dei risultati delle attività. (b/154751887)
Correzioni di bug
- Quando utilizzi i contratti
GetMultipleContents
eOpenMultipleDocuments
e selezioni un singolo elemento, questo viene ora restituito correttamente al 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 dei risultati di attività 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 inputUri
per la posizione in cui archiviare l'immagine. Il contratto precedente che non accetta input è stato rinominato inTakePicturePreview
. (aosp/1262482). - Il metodo
registerActivityResultCallback()
suActivityResultRegistry
è stato rinominato inregister()
. (aosp/1267621). - Il metodo
dispose()
suActivityResultLauncher
è stato rinominato inunregister()
e ilunregisterResultCallback()
suActivityResultRegistry
è stato rimosso. (aosp/1267621). - Il metodo
createIntent()
diActivityResultContact
ora richiede unContext
oltre all'input per consentire la creazione di intent espliciti. (aosp/1238800) - Ora un
ActivityResultContract
può eseguire l'override digetSynchronousResult()
per restituire un risultato senza chiamarestartActivityForResult
. Questo valore viene utilizzato dai contrattiRequestPermission
eRequestPermissions
per assegnare correttamente lo stato "Concesso" se le autorizzazioni richieste sono già concesse. (b/151110799) - Il contratto
Dial
precedentemente disponibile è stato rimosso in quantoIntent
non è destinato a essere utilizzato constartActivityForResult()
. (aosp/1266916). - Molte delle API dei risultati di attività che non devono essere estese sono ora
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
NullPointerException
inActivityResultRegistry
durante il tentativo di inviare risultati a un callback che non è stato ancora registrato nuovamente dopo una modifica della configurazione;ActivityResultRegistry
ora conserva questi risultati in sospeso e li pubblica quando il callback viene registrato nuovamente. (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: ora
ComponentActivity
fornisce unActivityResultRegistry
che ti consente di gestire i flussistartActivityForResult()
+onActivityResult()
erequestPermissions()
+onRequestPermissionsResult()
senza eseguire l'override dei metodi nell'attività o nel frammento, offrendo una maggiore sicurezza dei tipi tramiteActivityResultContract
e hook per testare questi flussi. Consulta la pagina aggiornata 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à
- Aggiunto il supporto per l'API
ViewTreeLifecycleOwner.get(View)
aggiunta in Ciclo di vita2.3.0-alpha01
in modo che restituisca l'attività comeLifecycleOwner
per qualsiasi vista aggiunta 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 cuionBackPressed()
avrebbe provocato unIllegalStateException
a causa di un bug nellaandroid.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 ViewModel SavingState del ciclo di vita:
SavedStateViewModelFactory
è ora la fabbrica predefinita utilizzata quando si utilizzaby viewModels()
, il costruttoreViewModelProvider
oViewModelProviders.of()
conComponentActivity
o le relative 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 delle dipendenze
- L'attività ora dipende dal ciclo di vita
2.2.0-rc03
e dal modello di vita ViewModel SavingState1.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 delle 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 rilasciati senza modifiche da 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 delle dipendenze
- L'attività ora dipende dalla versione stabile di SaveState 1.0.0.
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 stabilità del Core 1.1.0.
Correzioni di bug
- L'attività ora 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à
- Ora
SavedStateViewModelFactory
è il valore di fabbrica predefinito utilizzato quando si usaby viewModels()
, il costruttoreViewModelProvider
oViewModelProviders.of()
conComponentActivity
(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 alifecycle-runtime-ktx
; non è più necessario aggiungerla esplicitamente alle dipendenze quando si utilizzanoactivity-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
- ComponenteActivity:
ComponentActivity
funge da nuova classe base perFragmentActivity
in Fragment1.1.0
e, per estensione,AppCompatActivity
in AppCompat1.1.0
. - activity-ktx: il modulo
activity-ktx
include un'estensione di proprietà Kotlinby viewModels
per accedere a ViewModels. Questo modulo viene incluso automaticamente quando includifragment-ktx
dal Frammento1.1.0
. - OnBackPressedDispatcher: come alternativa componibile all'override di
onBackPressed()
, ora puoi registrare unOnBackPressedCallback
da qualsiasiLifecycleOwner
(ad esempio un frammento) per intercettare gli eventi del pulsante Indietro di sistema. Una funzione lambda con la versione del ricevitoreaddCallback
è stata aggiunta aactivity-ktx
. Per ulteriori dettagli, consulta la documentazione personalizzata relativa alla navigazione a ritroso. - Ritiro onRetainCustomNonConfigurationInstance: le API
onRetainCustomNonConfigurationInstance()
egetLastCustomNonConfigurationInstance()
correlate sono state deprecate. Ti consigliamo vivamente di utilizzare i modelli ViewModel per archiviare lo stato non di configurazione, poiché offrono una soluzione componibile adatta a qualsiasiViewModelStoreOwner
che rende chiara la proprietà degli oggetti conservati e fornisce un callbackonCleared()
per la pulizia delle risorse quando l'attività viene finalmente 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 rilasciati senza modifiche da 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 da 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 alle API
- Modifica di interruzione: i metodi
addOnBackPressedCallback
eremoveOnBackPressedCallback
precedentemente deprecati suComponentActivity
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 costruire le tue istanze per i test e così via. aosp/953431onBackPressed()
perComponentActivity
è ora esplicitamente contrassegnato come@MainThread
aosp/952721
Correzioni di bug
- È stato risolto un problema di
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 alle API
Questa release apporta modifiche significative alla gestione di onBackPressed()
. Per maggiori dettagli, consulta la documentazione aggiornata personalizzata.
- I metodi per
OnBackPressedCallback
eOnBackPressedDispatcher
sono stati contrassegnati come@MainThread
. (aosp/943813) - Il metodo
handleOnBackPressed()
non restituisce piùboolean
. OraOnBackPressedCallback
è una classe astratta che può essere attivata o disattivata. Solo quando il nuovo metodoisEnabled()
restituisce true, verrà chiamatohandleOnBackPressed()
, in cui 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à, che ti consente di chiamareremove()
durantehandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
ora contiene un callback con ambito destinatario peraddCallback
che accetta un codice lamdba che implementahandleOnBackPressed()
e che 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 alle API
- ComponenteActivity ora contiene un secondo costruttore che prende un
@LayoutRes int
, che sostituisce il precedente comportamento di annotare la classe AppCompatActivity con@ContentView
. Questo approccio funziona sia nei moduli delle app sia delle librerie. (b/128352521) - Le API correlate a
OnBackPressedCallback
su ComponentiActivity sono state ritirate a favore della nuovaOnBackPressedDispatcher
, recuperabile tramitegetOnBackPressedDispatcher()
. (aosp/922523) - I metodi per aggiungere un nuovo
OnBackPressedCallback
aOnBackPressedDispatcher
ora restituiscono un oggettoCancellable
, consentendo la rimozione del callback senza richiedere un riferimento esplicito aOnBackPressedDispatcher
. (aosp/922523) - L'aggiunta di un elemento
OnBackPressedCallback
a unLifecycleOwner
associato ora comporta l'aggiunta e la rimozione diOnBackPressedCallback
rispettivamente quando il ciclo di vita viene avviato e arrestato. (aosp/922523)
Versione 1.0.0-alpha05
13 marzo 2019
Vengono rilasciate le versioni 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à
@ContentView
ricerche di annotazioni ora sono 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 rilasciate.
Nuove funzionalità
- Aggiunto il supporto per l'annotazione della classe
@ContentView
, che consente di indicare quale file XML di layout deve essere aumentato in modo artificioso in alternativa all'uso disetContentView()
. (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 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à
- ComponenteActivity ora implementa
BundleSavedStateRegistryOwner
e dipende dalla libreria SaveState appena rilasciata [aosp/815133] - ComponenteActivity ora risolve un bug del framework Android che potrebbe far trapelare l'ultima visualizzazione attiva [b/37122102]
Versione 1.0.0-alpha02
3 dicembre 2018
Modifiche alle API
- È stata aggiunta una nota che indica che
getLifecycle()
non deve essere sostituito e che diventeràfinal
in una release futura. Invia una richiesta di funzionalità se 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 base degli attuali FragmentActivity
e
AppCompatActivity
.
Nuove funzionalità
- Ora puoi registrare un
OnBackPressedCallback
tramiteaddOnBackPressedCallback
per ricevereonBackPressed()
callback senza dover sostituire il metodo nella tua attività. - È stato aggiunto un nuovo delegato della proprietà Kotlin
by viewModels()
per il recupero diViewModel
da unComponentActivity
. - Gli eventi di input in attesa (come i clic) ora vengono annullati in
onStop()
.
Modifiche alle API
- L'implementazione di
LifecycleOwner
eViewModelStoreOwner
è stata spostata daFragmentActivity
aComponentActivity
. - L'API
onRetainCustomNonConfigurationInstance
è stata ritirata. UtilizzaViewModel
per archiviare gli oggetti che devono sopravvivere alle modifiche alla configurazione.