Aktivitas
Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
24 Juli 2024 | 1.9.1 | - | - | 1.10.0-alpha01 |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada Activity, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
Groovy
dependencies { def activity_version = "1.9.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.10
Versi 1.10.0-alpha01
26 Juni 2024
androidx.activity:activity:1.10.0-alpha01
, androidx.activity:activity-compose:1.10.0-alpha01
, dan androidx.activity:activity-ktx:1.10.0-alpha01
dirilis. Versi ini dikembangkan di cabang internal.
Fitur Baru
- Menambahkan dukungan untuk fitur
PhotoPicker
baru yang diperkenalkan di Android V, termasuk kemampuan memilih gambar secara berurutan dan memilih tab mana (album atau gambar) yang harus terlihat terlebih dahulu.
Versi 1.9
Versi 1.9.1
24 Juli 2024
androidx.activity:activity:1.9.1
, androidx.activity:activity-compose:1.9.1
, dan androidx.activity:activity-ktx:1.9.1
dirilis. Versi 1.9.1 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah
PredictiveBackHandler
yang setelah mengembalikan sistem, mencoba melakukanonBackPressed
dariOnBackPressedDispatcher
akan gagal. (I5f1f8)
Versi 1.9.0
17 April 2024
androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
, dan androidx.activity:activity-ktx:1.9.0
dirilis. Versi 1.9.0 berisi commit ini.
Perubahan penting sejak versi 1.8.0
ComponentActivity
kini mengimplementasikanOnUserLeaveHintProvider
untuk memungkinkan komponen ke callback untuk peristiwaonUserLeaveHint
.- API
OnBackPressedCallback
,BackHandler
, danPredictiveBackHandler
sekarang memperingatkan saat memanggilonBackPressedDispatcher.onBackPressed()
ketika menangani kembali karena hal itu akan selalu merusak Animasi Kembali Prediktif. Lihat panduan praktik terbaik untuk mengetahui detail selengkapnya. - Activity API lainnya telah ditulis ulang dalam Kotlin dan semua ekstensi yang sebelumnya tersedia di
activity-ktx
telah dipindahkan keactivity
.activity-ktx
sekarang benar-benar kosong.- Sebagai bagian dari konversi
ActivityResultLauncher
ke Kotlin, metodegetContract
kini menjadi properti Kotlin abstrak. Perubahan ini kompatibel dengan biner, tetapi dapat menyebabkan gangguan sumber jika implementasiActivityResultLauncher
Anda ditulis dalam Kotlin.
- Sebagai bagian dari konversi
Versi 1.9.0-rc01
3 April 2024
androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
, dan androidx.activity:activity-ktx:1.9.0-rc01
dirilis. Versi 1.9.0-rc01 berisi commit ini.
Pembaruan dependensi
- Activity sekarang bergantung pada Profile Installer 1.3.1.
Versi 1.9.0-beta01
20 Maret 2024
androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
, dan androidx.activity:activity-ktx:1.9.0-beta01
dirilis. Versi 1.9.0-beta01 berisi commit ini.
Perbaikan Bug
- Memperbaiki regresi performa startup Aktivitas yang diperkenalkan di Activity
1.9.0-alpha02
yang disebabkan oleh pemanggilanOnBackPressedDispatcher
sebagai bagian dari pembuatan Aktivitas. (Ie75e3)
Versi 1.9.0-alpha03
7 Februari 2024
androidx.activity:activity:1.9.0-alpha03
, androidx.activity:activity-compose:1.9.0-alpha03
, dan androidx.activity:activity-ktx:1.9.0-alpha03
dirilis. Versi 1.9.0-alpha03 berisi commit ini.
Peringatan Lint
- API
OnBackPressedCallback
,BackHandler
, danPredictiveBackHandler
sekarang memperingatkan saat memanggilonBackPressedDispatcher.onBackPressed()
ketika menangani kembali karena hal itu akan selalu merusak Animasi Kembali Prediktif. Lihat panduan praktik terbaik untuk mengetahui detail selengkapnya. (1e4222, 2c950d, b/287505200)
Perbaikan Bug
- Jika peristiwa kembali dikirim dari sistem yang dimulai selama Gestur Kembali Prediktif yang sudah berjalan, Gestur Kembali Prediktif yang sedang berjalan akan dibatalkan dan peristiwa kembali yang baru akan diambil alih untuk memulai Gestur Kembali Prediktif baru. (I3482e)
- Memperbaiki error saat mengakses
onBackPressedDispatcher
dariComponentActivity
untuk pertama kalinya dari thread latar belakang. Sekarang aman untuk mengaksesonBackPressedDispatcher
di thread apa pun. (I79955)
Versi 1.9.0-alpha02
24 Januari 2024
androidx.activity:activity:1.9.0-alpha02
, androidx.activity:activity-compose:1.9.0-alpha02
, dan androidx.activity:activity-ktx:1.9.0-alpha02
dirilis. Versi 1.9.0-alpha02 berisi commit ini.
Konversi Kotlin
ActivityResultRegistry
telah ditulis ulang dalam bahasa Kotlin. Hal ini memastikan bahwa nullability generik pada kontrak yang diteruskan keregister
akan diteruskan dengan benar keActivityResultLauncher
yang dikembalikan kepada Anda. (I121f0)ActivityResult
telah ditulis ulang dalam bahasa Kotlin. Ekstensi KotlinActivityResult
yang mendukung destrukturisasi ke dalam kolomresultCode
dandata
telah dipindahkan dariactivity-ktx
keactivity
. I0565a- Ekstensi Kotlin
by viewModels()
untukComponentActivity
dantrackPipAnimationHintView
telah dipindahkan dariactivity-ktx
keactivity
. Artefakactivity-ktx
sekarang benar-benar kosong. (I0a444)
Perbaikan Bug
enableEdgeToEdge
API sekarang menggambar di sekitar potongan layar apa pun. (a3644b, b/311173461)- Dari Activity
1.8.2
: Memperbaiki tambahan yang diteruskan keACTION_SYSTEM_FALLBACK_PICK_IMAGES
Kontrak Aktivitas Pemilih Foto untuk meneruskan tombolEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
dengan benar, bukan menggunakan tambahan dengan kunci"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Sangat disarankan jika Anda adalah OEM yang menerapkan Pemilih Foto penggantian sistem untuk mendukung kedua tambahan tersebut guna memastikan kompatibilitas terluas. (I96a00)
Versi 1.9.0-alpha01
29 November 2023
androidx.activity:activity:1.9.0-alpha01
, androidx.activity:activity-compose:1.9.0-alpha01
, dan androidx.activity:activity-ktx:1.9.0-alpha01
dirilis. Versi 1.9.0-alpha01 berisi commit ini.
Fitur Baru
ComponentActivity
kini mengimplementasikanOnUserLeaveHintProvider
untuk memungkinkan komponen ke callback untuk peristiwaonUserLeaveHint
. (I54892)
Perubahan API
ComponentActivity
telah ditulis ulang dalam bahasa Kotlin. (I14f31)ActivityResultCaller
telah ditulis ulang dalam bahasa Kotlin. (Ib02e4)ActivityResultLauncher
telah ditulis ulang dalam bahasa Kotlin. Sebagai bagian dari konversi tersebut, metodegetContract
kini menjadi properti Kotlin abstrak. Perubahan ini kompatibel dengan biner, tetapi dapat menyebabkan gangguan sumber jika implementasiActivityResultLauncher
Anda ditulis dalam Kotlin. (Id4615)PickVisualMediaRequest
sekarang memiliki level API minimum 19 yang sama dengan kontrak Hasil AktivitasPickVisualMedia
. (Id6e21)
Pembaruan Dependensi
- Aktivitas sekarang bergantung pada Core
1.13.0-alpha01
. (I14f31)
Versi 1.8
Versi 1.8.2
13 Desember 2023
androidx.activity:activity:1.8.2
, androidx.activity:activity-compose:1.8.2
, dan androidx.activity:activity-ktx:1.8.2
dirilis. Versi 1.8.2 berisi commit ini.
Perbaikan Bug
- Memperbaiki tambahan yang diteruskan ke
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
Kontrak Aktivitas Pemilih Foto untuk meneruskan tombolEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
dengan benar, bukan menggunakan tambahan dengan kunci"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Sangat disarankan jika Anda adalah OEM yang menerapkan Pemilih Foto penggantian sistem untuk mendukung kedua tambahan tersebut guna memastikan kompatibilitas terluas. (I96a00)
Versi 1.8.1
15 November 2023
androidx.activity:activity:1.8.1
, androidx.activity:activity-compose:1.8.1
, dan androidx.activity:activity-ktx:1.8.1
dirilis. Versi 1.8.1 berisi commit ini.
Perbaikan Bug
OnBackPressedDispatcher
kini terus mengirim keOnBackPressedCallback
yang benar bahkan setelahOnBackPressedCallback
baru ditambahkan saat gestur kembali ditangani. (Id0ff6)
Versi 1.8.0
4 Oktober 2023
androidx.activity:activity:1.8.0
, androidx.activity:activity-compose:1.8.0
, dan androidx.activity:activity-ktx:1.8.0
dirilis. Versi 1.8.0 berisi commit ini.
Perubahan penting sejak versi 1.7.0
- Kembali Prediktif -
OnBackPressedCallback
kini menawarkan callback Kembali Prediktif baru untuk menangani awal gestur kembali, progres di seluruh gestur, dan gestur kembali yang dibatalkan selain callbackhandleOnBackPressed()
sebelumnya untuk saat gestur kembali di-commit. Fungsi ini juga dilengkapi dengan ComposablePredictiveBackHandler
untuk menangani peristiwa gestur kembali prediktif di Activity Compose. Ini menyediakan Flow objek BackEventCompat yang harus dikumpulkan di lambda penangguhan yang Anda sediakan:
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()
kini tidak digunakan lagi dan digantikan oleh API untuk ditangani kembali. Developer sekarang harus menggunakan OnBackPressedDispatcher
, bukan mengganti metode ini.
- EdgeToEdge -
ComponentActivity.enableEdgeToEdge()
telah ditambahkan untuk menyiapkan layar dari tepi ke tepi dengan mudah agar kompatibel dengan versi lama.
Versi 1.8.0-rc01
20 September 2023
androidx.activity:activity:1.8.0-rc01
, androidx.activity:activity-compose:1.8.0-rc01
, dan androidx.activity:activity-ktx:1.8.0-rc01
dirilis. Versi 1.8.0-rc01 berisi commit ini.
Versi 1.8.0-beta01
6 September 2023
androidx.activity:activity:1.8.0-beta01
, androidx.activity:activity-compose:1.8.0-beta01
, dan androidx.activity:activity-ktx:1.8.0-beta01
dirilis. Versi 1.8.0-beta01 berisi commit ini.
Peningkatan Dokumentasi
- Meningkatkan kualitas dokumentasi
BackEventCompat
. (AOS 2722254)
Versi 1.8.0-alpha07
23 Agustus 2023
androidx.activity:activity:1.8.0-alpha07
, androidx.activity:activity-compose:1.8.0-alpha07
, dan androidx.activity:activity-ktx:1.8.0-alpha07
dirilis. Versi 1.8.0-alpha07 berisi commit ini.
Fitur Baru
Activity Compose telah menambahkan Composable
PredictiveBackHandler
baru untuk menangani peristiwa gestur kembali prediktif. Fungsi ini memberikanFlow
objekBackEventCompat
yang harus dikumpulkan dalam lambda penangguhan yang Anda berikan: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 } }
Kode ini juga dilengkapi dengan peringatan waktu kompilasi melalui aturan lint untuk memastikan
Flow
memanggilcollect()
. (Id2773, b/294884345)onBackPressedDispatcher
diComponentActivity
kini diinisialisasi dengan lambat sehingga hanya dibuat saat diperlukan. (I0bf8e)
Perbaikan Bug
ComponentActivity
tidak akan lagi menampilkan NPE di Android 13 saat mendapatkan callbackonBackPressed()
dan Aktivitas sudahDESTROYED
. (Idb055, b/291869278)- Menghapus penggunaan
isAtLeastU()
API eksperimental (Ie9117, b/289269026)
Versi 1.8.0-alpha06
21 Juni 2023
androidx.activity:activity:1.8.0-alpha06
, androidx.activity:activity-compose:1.8.0-alpha06
, dan androidx.activity:activity-ktx:1.8.0-alpha06
dirilis. Versi 1.8.0-alpha06 berisi commit ini.
Fitur Baru
OnBackPressedDispatcher
kini membatalkan dengan benar callback yang dihapus selama Gestur Kembali Prediktif. (I3f90f)
Perubahan API
- Saat meneruskan
SystemBarStyle.auto
keenableEdgeToEdge
API, Anda kini dapat mengganti parameter lambdadetectDarkMode
untuk menyediakan logika kustom guna mendeteksi mode malam. (AOSP/2546393, b/278263793)
Versi 1.8.0-alpha05
7 Juni 2023
androidx.activity:activity:1.8.0-alpha05
, androidx.activity:activity-compose:1.8.0-alpha05
, dan androidx.activity:activity-ktx:1.8.0-alpha05
dirilis. Versi ini dikembangkan di cabang internal.
Perubahan API
- Activity kini menyediakan class
BackEventCompat
yang berfungsi sebagai versiBackEvent
yang kompatibel dengan versi lama yang dipisahkan dari classBackEvent
framework. - Perubahan yang dapat menyebabkan gangguan: Metode
handleOnBackStarted
danhandleOnBackProgressed
dariOnBackPressedCallback
kini menerima instanceandroidx.activity.BackEventCompat
, bukan classandroid.window.BackEvent
framework.@VisibleForTesting
API yang setara diOnBackPressedDispatcher
juga telah diupdate. - Konstruktor untuk
OnBackPressedDispatcher
kini menggunakan instanceConsumer<Boolean>
opsional yang memungkinkan pemilik dispatcher menerima callback setiap kali jumlah callback yang diaktifkan berubah dari nol hingga bukan nol atau sebaliknya.
Perbaikan Bug
- Dari Activity
1.7.2
: MemperbaikiReportDrawn
yang error saat keluar dari layar sebelumreport
dipanggil. (Ic46f1, b/260506820)
Versi 1.8.0-alpha04
10 Mei 2023
androidx.activity:activity:1.8.0-alpha04
, androidx.activity:activity-compose:1.8.0-alpha04
, dan androidx.activity:activity-ktx:1.8.0-alpha04
dirilis. Versi ini dirilis dari cabang internal.
Perbaikan Bug
- Dari Activity 1.7.1: -
ReportFullyDrawExecuter
tidak lagi bocor saat menggunakanComponentActivity
denganActivityScenario
. (Id2ff2, b/277434271)
Versi 1.8.0-alpha03
12 April 2023
androidx.activity:activity:1.8.0-alpha03
, androidx.activity:activity-compose:1.8.0-alpha03
, dan androidx.activity:activity-ktx:1.8.0-alpha03
dirilis. Versi ini dirilis dari cabang internal.
Fitur Baru
- Menambahkan
ComponentActivity.setUpEdgeToEdge()
untuk dengan mudah menyiapkan tampilan tepi-ke-tepi yang kompatibel dengan versi sebelumnya.
Perubahan API
ComponentActivity.onBackPressed()
kini tidak digunakan lagi dan digantikan oleh API untuk ditangani kembali. Developer sekarang harus menggunakanOnBackPressedDispatcher
, bukan mengganti metode ini. (Ibce2f, b/271596918)ComponentDialog
danComponentActivity
kini berisi API publikinitViewTreeOwners()
yang akan digunakan untuk menginisialisasi semua pemilik hierarki tampilan sebelum menetapkan tampilan konten. (Ibdce0, b/261314581)
Perbaikan Bug
- Memperbaiki masalah saat Fragment salah memvalidasi MenuHosts dan menyebabkan menu lain dalam Aktivitas memiliki perilaku yang tidak terduga. (I9404e, b/244336571)
Perubahan Lainnya
ActivityResultRegister
kini menggunakanRandom
Kotlin, bukan Java. (I4d98f, b/272096025)
Versi 1.8.0-alpha02
8 Maret 2023
androidx.activity:activity:1.8.0-alpha02
, androidx.activity:activity-compose:1.8.0-alpha02
, dan androidx.activity:activity-ktx:1.8.0-alpha02
dirilis. Dikembangkan dari cabang internal.
Pembaruan dependensi
- Dari Activity
1.7.0-rc01
: Aktivitas sekarang bergantung padaLifecycle 2.6.0
.
Versi 1.8.0-alpha01
8 Februari 2023
androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
, dan androidx.activity:activity-ktx:1.8.0-alpha01
dirilis. Versi ini dibuat dari cabang internal.
Fitur Baru
- Class
OnBackPressedCallback
kini berisi callback progres Kembali Prediktif baru untuk menangani gestur kembali yang dimulai, progres di seluruh gestur, dan gestur kembali yang dibatalkan selain callbackhandleOnBackPressed()
sebelumnya saat gestur kembali dilakukan.
Versi 1.7
Versi 1.7.2
24 Mei 2023
androidx.activity:activity:1.7.2
, androidx.activity:activity-compose:1.7.2
, dan androidx.activity:activity-ktx:1.7.2
dirilis. Versi 1.7.2 berisi commit ini.
Perbaikan Bug
- Memperbaiki
ReportDrawn
yang error saat keluar dari layar sebelumreport
dipanggil. (Ic46f1, b/260506820)
Versi 1.7.1
19 April 2023
androidx.activity:activity:1.7.1
, androidx.activity:activity-compose:1.7.1
, dan androidx.activity:activity-ktx:1.7.1
dirilis. Versi 1.7.1 berisi commit ini.
Perbaikan Bug
ReportFullyDrawExecuter
tidak lagi bocor saat menggunakanComponentActivity
denganActivityScenario
. (Id2ff2, b/277434271)
Versi 1.7.0
22 Maret 2023
androidx.activity:activity:1.7.0
, androidx.activity:activity-compose:1.7.0
, dan androidx.activity:activity-ktx:1.7.0
dirilis. Versi 1.7.0 berisi commit ini.
Perubahan penting sejak versi 1.6.0
- Kontrak aktivitas Pemilih Foto di
PickVisualMedia
danPickMultipleVisualMedia
telah diperbarui untuk memuat penggantian tambahan saatMediaStore.ACTION_PICK_IMAGES
tidak tersedia yang memungkinkan OEM dan aplikasi sistem, seperti layanan Google Play, untuk memberikan pengalaman Pemilih Foto yang konsisten di berbagai perangkat Android dan API level yang lebih luas dengan menerapkan tindakan penggantian. Pemilih Foto akan menggunakan penggantian ini jika tersedia sebelum kembali menggunakanIntent.ACTION_OPEN_DOCUMENT
, yang tetap mendukung semua perangkat API 19 dan yang lebih baru. ComponentDialog
kini mengimplementasikanSavedStateRegistryOwner
dan memiliki akses keSavedStateRegistry
-nya sendiri serta menetapkanSavedStateRegistryOwner
untukViewTree
-nya. Kini Anda dapat menggunakan Jetpack Compose dalamComponentDialog
karena memenuhiLifecycleOwner
danSavedStateRegistryOwner
yang dilampirkan ke Window melalui persyaratanViewTree
API.IntentSenderRequest.Builder.setFlags()
kini memungkinkan Anda menetapkan beberapa tanda dariIntent
, bukan hanya satu tanda.
Konversi Kotlin
Sejumlah class Aktivitas telah dikonversi ke Kotlin. Semua class yang dikonversi masih mempertahankan kompatibilitas binernya dengan versi sebelumnya. Class berikut memiliki perubahan yang tidak kompatibel dengan sumber untuk class yang ditulis di Kotlin: ActivityResultRegistryOwner
, OnBackPressedDispatcherOwner
.
Tabel di bawah memberikan konversi sumber untuk Aktivitas versi baru:
Aktivitas 1.5 | Aktivitas 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
Class ini juga dikonversi ke Kotlin, tetapi tetap kompatibel dengan sumber: ContextAware
, ContextAwareHelper
, OnContextAvailableListener
, IntentSenderRequest
, dan OnBackPressedDispatcher
FullyDrawnReporter API
ComponentActivity
kini menyediakan instance FullyDrawnReporter
yang memungkinkan beberapa komponen membuat laporan ketika komponen tersebut siap untuk berinteraksi. ComponentActivity
akan menunggu semua komponen selesai sebelum memanggil reportFullyDrawn()
untuk Anda. API ini menangani persyaratan waktu untuk Anda dan tidak perlu dipanggil sebagai bagian dari panggilan onDraw
.
API ini disarankan agar dapat:
- Memberi sinyal ke Android Runtime saat proses startup selesai, untuk memastikan semua kode yang dijalankan selama urutan startup multi-frame disertakan dan diprioritaskan untuk kompilasi latar belakang.
- Memberi sinyal ke Macrobenchmark dan Play Vitals saat aplikasi Anda harus dianggap digambar sepenuhnya untuk metrik startup, sehingga Anda dapat melacak performa.
Tiga Activity Compose API telah ditambahkan untuk mempermudah penggunaan FullyDrawnReporter
dari setiap composable:
ReportDrawn
menunjukkan bahwa composable Anda segera siap untuk berinteraksi.ReportDrawnWhen
mengambil predikat (yaitu,list.count > 0
) untuk menunjukkan kapan composable Anda siap berinteraksi.ReportDrawnAfter
menggunakan metode penangguhan yang, setelah selesai, menunjukkan bahwa Anda siap untuk berinteraksi.
Update Dependensi
- Activity sekarang bergantung pada Lifecycle
2.6.1
. (8fc31d) - Activity sekarang bergantung pada ProfileInstaller
1.3.0
. (83d3b1)
Versi 1.7.0-rc01
8 Maret 2023
androidx.activity:activity:1.7.0-rc01
, androidx.activity:activity-compose:1.7.0-rc01
, dan androidx.activity:activity-ktx:1.7.0-rc01
dirilis. Versi 1.7.0-rc01 berisi commit ini.
Pembaruan dependensi
- Aktivitas sekarang bergantung pada
Lifecycle 2.6.0
.
Versi 1.7.0-beta02
22 Februari 2023
androidx.activity:activity:1.7.0-beta02
, androidx.activity:activity-compose:1.7.0-beta02
, dan androidx.activity:activity-ktx:1.7.0-beta02
dirilis. Versi 1.7.0-beta02 berisi commit ini.
Perubahan API
- Tindakan dan tambahan yang digunakan oleh kontrak
PickVisualMedia
danPickMultipleVisualMedia
sebagai penggantian saatMediaStore.ACTION_PICK_IMAGES
tidak tersedia kini merupakan konstanta publik yang memberikan stabilitas API untuk OEM dan aplikasi sistem yang ingin memberikan pengalaman Pemilih Foto yang konsisten. Implementasi penggantian ini masih terbatas hanya untuk aplikasi sistem. (Icd320)
Versi 1.7.0-beta01
8 Februari 2023
androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
, dan androidx.activity:activity-ktx:1.7.0-beta01
dirilis. Versi 1.7.0-beta01 berisi commit ini.
Fitur Baru
IntentSenderRequest.Builder.setFlags()
kini memungkinkan Anda menetapkan beberapa tanda dariIntent
, bukan hanya satu tanda. (Iac04c)
Perbaikan Bug
- Penggantian untuk
PickVisualMedia
saat Pemilih Foto framework tidak tersedia kini membatasi penanganan dengan benar untuk aplikasi yang diinstal di image sistem perangkat. (If8ae6)
Konversi Kotlin
ActivityResultRegistryOwner
kini ditulis dalam Kotlin. Ini adalah perubahan sumber yang tidak kompatibel untuk class yang ditulis di Kotlin tersebut - Anda sekarang harus mengganti propertiactivityResultRegistry
, bukan mengimplementasikan fungsigetActivityResultRegistry()
sebelumnya. (I0b00e)OnBackPressedDispatcherOwner
kini ditulis dalam Kotlin. Ini adalah perubahan sumber yang tidak kompatibel untuk class yang ditulis di Kotlin tersebut - Anda sekarang harus mengganti propertionBackPressedDispatcher
, bukan mengimplementasikan fungsigetOnBackPressedDispatcher
sebelumnya. (Ia277d)ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
, danOnBackPressedDispatcher
kini ditulis dalam Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)
Versi 1.7.0-alpha04
25 Januari 2023
androidx.activity:activity:1.7.0-alpha04
, androidx.activity:activity-compose:1.7.0-alpha04
, dan androidx.activity:activity-ktx:1.7.0-alpha04
dirilis. Versi 1.7.0-alpha04 berisi commit ini.
Fitur Baru
- Kontrak Activity Result
PickVisualMedia
danPickMultipleVisualMedia
kini akan menggunakan Pemilih Foto yang disediakan oleh layanan Google Play, jika ada, saat Pemilih Foto yang disediakan oleh sistem Android (misalnya,MediaStore.ACTION_PICK_IMAGES
) tidak tersedia.isPhotoPickerAvailable()
API yang hanya mendeteksi Pemilih Foto yang disediakan oleh sistem Android kini tidak digunakan lagi. Sebaiknya gunakanisPhotoPickerAvailable(Context)
API baru, yang akan ditampilkan jika Pemilih Foto tersedia. (I55be6)
Versi 1.7.0-alpha03
11 Januari 2023
androidx.activity:activity:1.7.0-alpha03
, androidx.activity:activity-compose:1.7.0-alpha03
, dan androidx.activity:activity-ktx:1.7.0-alpha03
dirilis. Versi 1.7.0-alpha03 berisi commit ini.
Fitur Baru
ComponentDialog
sekarang mengimplementasikanSavedStateRegistryOwner
dan memiliki akses keSavedStateRegistry
-nya sendiri serta menetapkanSavedStateRegistryOwner
untuk ViewTree-nya. Sekarang Anda dapat menggunakan Jetpack Compose dalamComponentDialog
karena memenuhiLifecycleOwner
danSavedStateRegistryOwner
yang dilampirkan ke Jendela melalui persyaratan ViewTree API. (Idca17, I73468 b/261162296)
Perubahan API
- Menambahkan composable
ReportDrawn
yang langsung menandai aktivitas sebagai siap memanggilreportFullyDrawn
. (Ic5b14, b/259687964)
Konversi Kotlin
- Class
ActvitiyResultCallback
danOnBackPressedCallback
telah dikonversi ke Kotlin dengan tetap mempertahankan kompatibilitas sumber dan biner. (Ifc5e5, Ide1b0, b/257291701)
Versi 1.7.0-alpha02
24 Oktober 2022
androidx.activity:activity:1.7.0-alpha02
, androidx.activity:activity-compose:1.7.0-alpha02
, dan androidx.activity:activity-ktx:1.7.0-alpha02
dirilis. Versi 1.7.0-alpha02 berisi commit ini.
Perbaikan Bug
- Dari Activity
1.6.1
: Memperbaiki masalah kontrak Activity ResultPickMultipleVisualMedia
yang tidak diluncurkan di perangkat Android R saat menggunakan nilai default untukmaxItems
. (Ie2776, b/249182130)
Versi 1.7.0-alpha01
5 Oktober 2022
androidx.activity:activity:1.7.0-alpha01
, androidx.activity:activity-compose:1.7.0-alpha01
, dan androidx.activity:activity-ktx:1.7.0-alpha01
dirilis. Versi 1.7.0-alpha01 berisi commit ini.
FullyDrawnReporter API
ComponentActivity
kini menyediakan instance FullyDrawnReporter
yang memungkinkan beberapa komponen membuat laporan ketika komponen tersebut siap untuk berinteraksi. ComponentActivity
akan menunggu semua komponen selesai sebelum memanggil reportFullyDrawn()
untuk Anda. API ini menangani persyaratan waktu untuk Anda dan tidak perlu dipanggil sebagai bagian dari panggilan onDraw
.
API ini disarankan agar dapat:
- Memberi sinyal ke Android Runtime saat proses startup selesai, untuk memastikan semua kode yang dijalankan selama urutan startup multi-frame disertakan dan diprioritaskan untuk kompilasi latar belakang.
- Memberi sinyal ke Macrobenchmark dan Play Vitals saat aplikasi Anda harus dianggap digambar sepenuhnya untuk metrik startup, sehingga Anda dapat melacak performa.
Dua Activity Compose API telah ditambahkan agar lebih mudah menggunakan FullyDrawnReporter
dari setiap composable:
ReportDrawnWhen
mengambil predikat (yaitu,list.count > 0
) untuk menunjukkan kapan composable Anda siap berinteraksi.ReportDrawnAfter
menggunakan metode penangguhan yang, setelah selesai, menunjukkan bahwa Anda siap untuk berinteraksi.
Versi 1.6.1
Versi 1.6.1
24 Oktober 2022
androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
, dan androidx.activity:activity-ktx:1.6.1
dirilis. Versi 1.6.1 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah kontrak Activity Result
PickMultipleVisualMedia
yang tidak diluncurkan di perangkat Android R saat menggunakan nilai default untukmaxItems
. (Ie2776, b/249182130)
Versi 1.6.0
Versi 1.6.0
21 September 2022
androidx.activity:activity:1.6.0
, androidx.activity:activity-compose:1.6.0
, dan androidx.activity:activity-ktx:1.6.0
dirilis. Versi 1.6.0 berisi commit ini.
Perubahan penting sejak versi 1.5.0
- Menambahkan
ActivityResultContracts.PickVisualMedia
danActivityResultContracts.PickMultipleVisualMedia
untuk memberikan kontrak yang kompatibel dengan versi sebelumnya yang menggunakanMediaStore.ACTION_PICK_IMAGES
saat Pemilih Foto tersedia danIntent.ACTION_OPEN_DOCUMENT
saat tidak tersedia. - Mengintegrasikan
OnBackInvokedCallback
di Android 13 ke dalamOnBackPressedDispatchers
yang disediakan olehComponentActivity
danComponentDialog
. Tindakan ini memastikan bahwa semua API yang dibuat diOnBackPressedDispatcher
berfungsi saat mengaktifkan gestur kembali prediktif.
Versi 1.6.0-rc02
7 September 2022
androidx.activity:activity:1.6.0-rc02
, androidx.activity:activity-compose:1.6.0-rc02
, dan androidx.activity:activity-ktx:1.6.0-rc02
dirilis. Versi 1.6.0-rc02 berisi commit ini.
Perbaikan Bug
OnBackPressedDispatcher
kini mendaftarkanOnBackInvokedCallback
denganPRIORITY_DEFAULT
, bukanPRIORITY_OVERLAY
. (I3901f)- Class yang memperluas
ComponentActivity
kini akan selalu mengirim kedua callbackonMultiWindowModeChanged()
. (Ic4d85) ActivityResultRegistry
tidak akan lagi menampilkan hasil keActivityResultCallback
saat panggilanlaunch
menampilkanException
apa pun dan callback didaftarkan tanpaLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
kini akan mengirim panggilan menu dengan benar tanpa perlu memanggil fungsi super dalam aktivitas Anda. (Ie33c5, b/238057118)
Pembaruan Dependensi
- Library
Activity
kini bergantung pada Lifecycle2.5.1
. (If6697)
Versi 1.6.0-rc01
24 Agustus 2022
androidx.activity:activity:1.6.0-rc01
, androidx.activity:activity-compose:1.6.0-rc01
, dan androidx.activity:activity-ktx:1.6.0-rc01
dirilis. Versi 1.6.0-rc01 berisi commit ini.
Perbaikan Bug
- Melakukan inisialisasi
OnBackPressedDispatcher
tidak akan lagi menyebabkanClassVerificationError
saat menggunakan versi SDK sebelum 33. (Ic32e1) - Class yang mengganti callback
onPictureInPictureModeChanged()
ComponentActivity
sekarang akan selalu dikirim callback-nya. (Ib7fdb)
Versi 1.6.0-beta01
10 Agustus 2022
androidx.activity:activity:1.6.0-beta01
, androidx.activity:activity-compose:1.6.0-beta01
, dan androidx.activity:activity-ktx:1.6.0-beta01
dirilis. Versi 1.6.0-beta01 berisi commit ini.
Perubahan API
- Menandai metode
startActivityForResult
danstartIntentSenderForResult
yang sudah tidak digunakan lagi diComponentActivity
dengan@NonNull
karena penerusannull
selalu mengakibatkan error. (Id2a25, b/231476082)
Perbaikan Bug
- Dari Activity
1.5.1
:ActivityResultRegistry
tidak akan lagi menampilkan hasil keActivityResultCallback
saat panggilanlaunch
menampilkanException
apa pun dan callback didaftarkan tanpaLifecycleOwner
. (Ia7ff7, b/238350794) - Dari Activity
1.5.1
:ComponentActivity
kini akan mengirim panggilan menu dengan benar ke penggantianonPrepareOptionMenu()
,onCreateOptionsMenu()
, danonOptionsItemSelected()
tanpa perlu memanggil fungsi super. (Ie33c5, b/238057118)
Pembaruan Dependensi
- Dari Activity
1.5.1
: LibraryActivity
kini bergantung padaLifecycle
versi2.5.1
. (If6697)
Versi 1.6.0-alpha05
15 Juni 2022
androidx.activity:activity:1.6.0-alpha05
, androidx.activity:activity-compose:1.6.0-alpha05
, dan androidx.activity:activity-ktx:1.6.0-alpha05
dirilis. Versi 1.6.0-alpha05 dikembangkan di cabang pra-rilis pribadi dan tidak memiliki commit publik.
Perubahan API
minCompileSdk
kini menjadi 33 untuk menyesuaikan dengan SDK Tiramisu Beta 3
Perbaikan Bug
- Memperbaiki error pada perangkat lama saat melakukan pemeriksaan ekstensi SDK untuk
PickVisualMedia
ActivityResultContract
sehingga kini berfungsi denganACTION_OPEN_DOCUMENT
di perangkat yang menjalankan Android 10 dan yang lebih lama.
Versi 1.6.0-alpha04
18 Mei 2022
androidx.activity:activity:1.6.0-alpha04
dan androidx.activity:activity-ktx:1.6.0-alpha04
dirilis.
Perbaikan Bug
- Memperbaiki error di
PickVisualMediaRequest
saat mencoba membuat permintaan, baik melalui Builder atau fungsi Kotlin level atas, akan menghasilkan stack overflow. - Mengintegrasikan
OnBackInvokedCallback
di Dev Beta 2 Android 13 ke dalamOnBackPressedDispatcher
yang disediakan olehComponentDialog
. Tindakan ini memastikan bahwa semua API yang dibuat diOnBackPressedDispatcher
berfungsi saat mengaktifkan gestur kembali prediktif.
Versi 1.6.0-alpha03
27 April 2022
androidx.activity:activity:1.6.0-alpha03
, androidx.activity:activity-compose:1.6.0-alpha03
, dan androidx.activity:activity-ktx:1.6.0-alpha03
dirilis.
- Catatan: Versi ini hanya akan melakukan kompilasi terhadap SDK Developer Beta 1 Android 13.
Fitur Baru
- Menambahkan
ActivityResultContracts.PickVisualMedia
danActivityResultContracts.PickMultipleVisualMedia
untuk memberikan kontrak yang kompatibel dengan versi sebelumnya yang menggunakanMediaStore.ACTION_PICK_IMAGES
saat Pemilih Foto tersedia danIntent.ACTION_OPEN_DOCUMENT
saat tidak tersedia. - Mengintegrasikan
OnBackInvokedCallback
di Dev Beta 1 Android 13 ke dalamOnBackPressedDispatcher
yang disediakan olehComponentActivity
. Tindakan ini memastikan bahwa semua API yang dibuat diOnBackPressedDispatcher
berfungsi saat mengaktifkan gestur kembali prediktif.
Versi 1.6.0-alpha01
23 Maret 2022
androidx.activity:activity:1.6.0-alpha01
, androidx.activity:activity-compose:1.6.0-alpha01
, dan androidx.activity:activity-ktx:1.6.0-alpha01
dirilis.
- Catatan: Versi ini hanya akan melakukan kompilasi terhadap SDK Pratinjau Developer 2 Android 13.
Fitur Baru
- Mengintegrasikan perubahan di Pratinjau Dev 2 Android 13 ke dalam
ComponentActivity
.
Versi 1.5.1
Versi 1.5.1
27 Juli 2022
androidx.activity:activity:1.5.1
, androidx.activity:activity-compose:1.5.1
, dan androidx.activity:activity-ktx:1.5.1
dirilis. Versi 1.5.1 berisi commit ini.
Perbaikan Bug
ActivityResultRegistry
tidak akan lagi menampilkan hasil keActivityResultCallback
saat panggilanlaunch()
menampilkanException
apa pun dan callback didaftarkan tanpaLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
sekarang akan mengirim panggilan menu dengan benar ke penggantianonPrepareOptionMenu()
,onCreateOptionsMenu()
, danonOptionsItemSelected()
tanpa perlu memanggil fungsi super. (Ie33c5, b/238057118)
Pembaruan dependensi
- Library
Activity
kini bergantung pada Lifecycle2.5.1
. (If6697)
Versi 1.5.0
Versi 1.5.0
29 Juni 2022
androidx.activity:activity:1.5.0
, androidx.activity:activity-compose:1.5.0
, dan androidx.activity:activity-ktx:1.5.0
dirilis. Versi 1.5.0 berisi commit ini.
Perubahan penting sejak versi 1.4.0
- ComponentDialog -
ComponentDialog
adalah subclassDialog
yang menyertakanOnBackPressedDispatcher
yang akan dipanggil saat tombol kembali sistem ditekan ketika dialog terlihat. Yang penting, subclass ini juga menyetelViewTreeOnBackPressedDispatcherOwner
, yang memungkinkan tampilan dengan cara umum untuk mengambil dispatcher yang benar baik yang ada diComponentActivity
atauComponentDialog
. - Antarmuka Callback -
ComponentActivity
kini mengimplementasikan serangkaian antarmuka callback modular yang dapat digunakan sebagai ganti callbackActivity
. Antarmuka ini mencakup hal berikut:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- Integrasi CreationExtras -
ComponentActivity
kini memiliki kemampuan untuk menyediakanViewModelProvider.Factory
stateless melaluiCreationExtras
Lifecycle2.5.0
.
Perubahan lainnya
- Konstruktor tanpa parameter untuk
ActivityResultContracts.CreateDocument
sudah tidak digunakan lagi dan diganti dengan konstruktor baru yang menggunakan jenis MIME konkret (misalnya, "image/png") sebagaimana diperlukan olehIntent.ACTION_CREATE_DOCUMENT
.
Versi 1.5.0-rc01
11 Mei 2022
androidx.activity:activity:1.5.0-rc01
, androidx.activity:activity-compose:1.5.0-rc01
, dan androidx.activity:activity-ktx:1.5.0-rc01
dirilis tanpa perubahan dari versi 1.5.0-beta01. Versi 1.5.0-rc01 berisi commit ini.
Versi 1.5.0-beta01
20 April 2022
androidx.activity:activity:1.5.0-beta01
, androidx.activity:activity-compose:1.5.0-beta01
, dan androidx.activity:activity-ktx:1.5.0-beta01
dirilis. Versi 1.5.0-beta01 berisi commit ini.
Update dependensi
- Activity sekarang bergantung pada Lifecycle
2.4.0-beta01
.
Versi 1.5.0-alpha05
6 April 2022
androidx.activity:activity:1.5.0-alpha05
, androidx.activity:activity-compose:1.5.0-alpha05
, dan androidx.activity:activity-ktx:1.5.0-alpha05
dirilis. Versi 1.5.0-alpha05 berisi commit ini.
Perbaikan Bug
onPanelClosed()
ComponentActivity
kini juga memanggilonPanelClosed()
super, yang memperbaiki masalah saat metodeonContextMenuClosed
tidak akan dipanggil. (Ib6f77)
Versi 1.5.0-alpha04
23 Maret 2022
androidx.activity:activity:1.5.0-alpha04
, androidx.activity:activity-compose:1.5.0-alpha04
, dan androidx.activity:activity-ktx:1.5.0-alpha04
dirilis. Versi 1.5.0-alpha04 berisi commit ini.
Perbaikan Bug
SavedStateViewFactory
sekarang mendukung penggunaanCreationExtras
meskipun diinisialisasi denganSavedStateRegistryOwner
. Jika tambahan disediakan, argumen yang diinisialisasi akan diabaikan. (I6c43b, b/224844583)
Versi 1.5.0-alpha03
23 Februari 2022
androidx.activity:activity:1.5.0-alpha03
, androidx.activity:activity-compose:1.5.0-alpha03
, dan androidx.activity:activity-ktx:1.5.0-alpha03
dirilis. Versi 1.5.0-alpha03 berisi commit ini.
Perubahan API
- Anda sekarang dapat meneruskan
CreationExtras
ke fungsiby viewModels()
aktivitas (I6a3e6, b/217600303)
Versi 1.5.0-alpha02
9 Februari 2022
androidx.activity:activity:1.5.0-alpha02
, androidx.activity:activity-compose:1.5.0-alpha02
, dan androidx.activity:activity-ktx:1.5.0-alpha02
dirilis. Versi 1.5.0-alpha02 berisi commit ini.
Fitur Baru
ComponentActivity
kini mengimplementasikan antarmukaOnPictureInPictureModeChangedProvider
untuk memungkinkan komponen apa pun menerima peristiwa perubahan mode picture-in-picture. (I9f567)ComponentActivity
kini mengimplementasikan antarmukaOnMultiWindowModeChangedProvider
untuk memungkinkan komponen apa pun menerima peristiwa perubahan mode multi-aplikasi. (I62d91)
Versi 1.5.0-alpha01
26 Januari 2022
androidx.activity:activity:1.5.0-alpha01
, androidx.activity:activity-compose:1.5.0-alpha01
, dan androidx.activity:activity-ktx:1.5.0-alpha01
dirilis. Versi 1.5.0-alpha01 berisi commit ini.
Fitur Baru
ComponentActivity
kini terintegrasi dengan ViewModel CreationExtras, yang diperkenalkan sebagai bagian dari Lifecycle2.5.0-alpha01
. (Ie7e00, b/207012584)- Menambahkan
ComponentDialog
, subclassDialog
yang menyertakanOnBackPressedDispatcher
yang akan dipanggil saat tombol kembali sistem ditekan ketika dialog terlihat. Yang penting, subclass ini juga menyetelViewTreeOnBackPressedDispatcherOwner
, yang memungkinkan tampilan dengan cara umum untuk mengambil dispatcher yang benar baik yang ada diComponentActivity
atauComponentDialog
. (I8a1bc) ComponentActivity
kini mengimplementasikan antarmukaOnNewIntentProvider
baru untuk memungkinkan komponen apa pun menerima peristiwa ini. (If1f8b)ComponentActivity
kini mengimplementasikan antarmukaOnConfigurationChangedProvider
baru untuk memungkinkan komponen apa pun menerima peristiwa ini. (If623b)ComponentActivity
kini mengimplementasikan antarmukaOnTrimMemoryProvider
baru untuk memungkinkan komponen apa pun menerima peristiwa ini. (Ia9295)
Perubahan API
- Konstruktor tanpa parameter untuk
ActivityResultContracts.CreateDocument
sudah tidak digunakan lagi dan diganti dengan konstruktor baru yang menggunakan jenis MIME konkret (misalnya,"image/png"
) sebagaimana diwajibkan olehIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) OnBackPressedDispatcherOwner
yang terkait dengan View sekarang dapat diambil melaluiViewTreeOnBackPressedDispatcherOwner
, bukan mengandalkan transmisiContext
. (I74685)
Perbaikan Bug
- Memperbaiki error saat mengakses
ViewModel
untuk pertama kalinya dari callbackregisterForActivityResult()
atau callback keLifecycleObserver
ditambahkan sebagai bagian dariinit
ComponentActivity
. (Ife83f)
Versi 1.4.0
Versi 1.4.0
27 Oktober 2021
androidx.activity:activity:1.4.0
, androidx.activity:activity-compose:1.4.0
, dan androidx.activity:activity-ktx:1.4.0
dirilis. Versi 1.4.0 berisi commit ini.
Perubahan penting sejak versi 1.3.0
ComponentActivity
AndroidX kini mengimplementasikan antarmukaMenuHost
. Tindakan ini memungkinkan komponen apa pun menambahkan item menu keActionBar
dengan menambahkan instanceMenuProvider
ke aktivitas. SetiapMenuProvider
dapat ditambahkan secara opsional denganLifecycle
yang akan otomatis mengontrol visibilitas item menu tersebut berdasarkan statusLifecycle
dan menangani penghapusanMenuProvider
saatLifecycle
dihancurkan.- Class
ActivityResultContract
telah ditulis ulang di Kotlin untuk memastikan bahwa developer yang menulis kontrak kustom di Kotlin dapat menentukan nullability yang benar untuk class input dan output. - Class
ActivityResultContracts
dan kontraknya telah ditulis ulang di Kotlin guna memastikan nullability yang tepat.
Versi 1.4.0-rc01
13 Oktober 2021
androidx.activity:activity:1.4.0-rc01
, androidx.activity:activity-compose:1.4.0-rc01
, dan androidx.activity:activity-ktx:1.4.0-rc01
dirilis. Versi 1.4.0-rc01 berisi commit ini.
Perbaikan Bug
ActivityResultRegistry
tidak akan lagi menampilkan hasil keActivityResultCallback
saat panggilanlaunch
menampilkanException
apa pun. (If4f91, b/200845664)
Versi 1.4.0-beta01
29 September 2021
androidx.activity:activity:1.4.0-beta01
, androidx.activity:activity-compose:1.4.0-beta01
, dan androidx.activity:activity-ktx:1.4.0-beta01
dirilis. Versi 1.4.0-beta01 berisi commit ini.
Perubahan API
- Memperbaiki jenis untuk
ActivityResultContracts.OpenMultipleDocuments
danActivityResultContracts.GetMultipleContents
yang kemudian menyebabkan penggunaan jenis outputList<? extends Uri>
saat menggunakan kode dari bahasa pemrograman Java. (If71de) - Konstanta publik dalam class
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
, danActivityResultContracts.RequestMultiplePermissions
kini dapat diakses saat menggunakan Kotlin melalui objekCompanion
-nya yang sekarang publik. (aosp/1832555)
Pembaruan Dokumentasi
- Pesan penghentian penggunaan untuk API yang sekarang ditangani oleh Activity Result API, yaitu
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
, danonRequestPermissionsResult
, semuanya telah diperluas dengan detail selengkapnya. (cce80f)
Versi 1.4.0-alpha02
15 September 2021
androidx.activity:activity:1.4.0-alpha02
, androidx.activity:activity-compose:1.4.0-alpha02
, dan androidx.activity:activity-ktx:1.4.0-alpha02
dirilis. Versi 1.4.0-alpha02 berisi commit ini.
Fitur Baru
- Artefak
activity-compose
sekarang berisi error lintLaunchDuringComposition
yang mencegah Anda memanggil metodelaunch
dariActivityResultLauncher
sebagai bagian dari komposisi karena komposisi seharusnya bebas efek samping. Menggunakan API untuk menangani efek samping. (7c2bbe, b/191347220)
Perubahan API
- Class
ActivityResultContract
telah ditulis ulang di Kotlin untuk memastikan bahwa developer yang menulis kontrak kustom di Kotlin dapat menentukan nullability yang benar untuk class input dan output. (I8a8f5) - Class
ActivityResultContracts
dan kontraknya telah ditulis ulang di Kotlin guna memastikan nullability yang tepat. (I69802)
Versi 1.4.0-alpha01
1 September 2021
androidx.activity:activity:1.4.0-alpha01
, androidx.activity:activity-compose:1.4.0-alpha01
, dan androidx.activity:activity-ktx:1.4.0-alpha01
dirilis. Versi 1.4.0-alpha01 berisi commit ini.
Fitur Baru
ComponentActivity
AndroidX kini mengimplementasikan antarmukaMenuHost
. Tindakan ini memungkinkan komponen apa pun menambahkan item menu keActionBar
dengan menambahkan instanceMenuProvider
ke aktivitas. SetiapMenuProvider
dapat ditambahkan secara opsional denganLifecycle
yang akan otomatis mengontrol visibilitas item menu tersebut berdasarkan statusLifecycle
dan menangani penghapusanMenuProvider
saatLifecycle
dihancurkan. (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)
}
Perubahan Perilaku
ActivityResultRegistry
sekarang akan melemparkanIllegalStateException
saat mencoba memanggillaunch()
diActivityResultLauncher
yang belum terdaftar atau yang telah dibatalkan pendaftarannya. (Ida75d, b/192567522)
Kontribusi Eksternal
- Terima kasih dmitrilc karena telah memperbaiki kesalahan ketik dalam dokumentasi
ActivityResult
. (#221)
Versi 1.3.1
Versi 1.3.1
4 Agustus 2021
androidx.activity:activity:1.3.1
, androidx.activity:activity-compose:1.3.1
, dan androidx.activity:activity-ktx:1.3.1
dirilis. Versi 1.3.1 berisi commit ini.
Update dependensi
- Activity sekarang bergantung pada Kotlin
1.5.21
. - Activity Compose sekarang bergantung pada Compose
1.0.1
.
Versi 1.3.0
Versi 1.3.0
28 Juli 2021
androidx.activity:activity:1.3.0
, androidx.activity:activity-compose:1.3.0
, dan androidx.activity:activity-ktx:1.3.0
dirilis. Versi 1.3.0 berisi commit ini.
Perubahan penting sejak versi 1.2.0
- Artefak Activity Compose - Artefak
activity-compose
menyediakan metode ekstensisetContent
untuk menghosting UI Jetpack Compose dalam aktivitas dan wrapper khusus Compose untuk berinteraksi denganComponentActivity
API guna menangani tombol kembali sistem dan Activity Result API. Lihat dokumentasi untuk detail selengkapnya. - Kontrak CaptureVideo -
ActivityResultContract
CaptureVideo
menggantikan kontrakTakeVideo
yang sekarang tidak digunakan lagi dan menampilkan boolean yang menunjukkan keberhasilan yang berfungsi di banyak aplikasi kamera. - Pelacakan Tampilan Petunjuk Picture-In-Picture - Pengguna
activity-ktx
kini dapat menggunakan metode ekstensitrackPipAnimationHintView
diActivity
untuk otomatis membuat ulangPictureInPictureParams
dengan posisi baru tampilan karena mengubah posisi relatif terhadap jendela.
Versi 1.3.0-rc02
14 Juli 2021
androidx.activity:activity:1.3.0-rc02
, androidx.activity:activity-compose:1.3.0-rc02
, dan androidx.activity:activity-ktx:1.3.0-rc02
dirilis. Versi 1.3.0-rc02 berisi commit ini.
Perbaikan Bug
- Callback
ActivityResultRegistry
kini disimpan dan dipulihkan dengan benar, sehingga callback tidak diduplikasi di savedState. (I97816, b/191893160)
Versi 1.3.0-rc01
1 Juli 2021
androidx.activity:activity:1.3.0-rc01
, androidx.activity:activity-compose:1.3.0-rc01
, dan androidx.activity:activity-ktx:1.3.0-rc01
dirilis tanpa perubahan dari versi 1.3.0-beta02
. Versi 1.3.0-rc01 berisi commit ini.
Versi 1.3.0-beta02
16 Juni 2021
androidx.activity:activity:1.3.0-beta02
, androidx.activity:activity-compose:1.3.0-beta02
, dan androidx.activity:activity-ktx:1.3.0-beta02
dirilis. Versi 1.3.0-beta02 berisi commit ini.
Mengupdate activity-compose
agar bergantung pada Compose 1.0.0-beta09
. androidx.compose.ui:ui-test-junit4
sekarang memiliki dependensi waktu kompilasi pada activity-compose
.
Versi 1.3.0-beta01
2 Juni 2021
androidx.activity:activity:1.3.0-beta01
, androidx.activity:activity-compose:1.3.0-beta01
, dan androidx.activity:activity-ktx:1.3.0-beta01
dirilis. Versi 1.3.0-beta01 berisi commit ini.
Perubahan API
- Metode
@Composable registerForActivityResult()
yang sebelumnya tidak digunakan lagi telah dihapus. Harap gunakanrememberLauncherForActivityResult()
. (Ic39d3)
Versi 1.3.0-alpha08
18 Mei 2021
androidx.activity:activity:1.3.0-alpha08
, androidx.activity:activity-compose:1.3.0-alpha08
, dan androidx.activity:activity-ktx:1.3.0-alpha08
dirilis. Versi 1.3.0-alpha08 berisi commit ini.
Fitur Baru
ActivityResultContract
CaptureVideo
baru menampilkan boolean keActivityResultCallback
yang menunjukkan apakah video Anda berhasil disimpan ke URI yang diberikan. Ini menggantikan kontrakTakeVideo
yang sekarang tidak digunakan lagi karena aplikasi kamera sangat jarang mendukung ditampilkannya bitmap thumbnail, sehingga hasilnya menjadi tidak bermanfaat. (Ie21f2, b/185938070)- Menambahkan
Activity#setPipAnimationHintView
API baru untuk memperbarui petunjuk rect sumber PipParams setiap kali tampilan berpindah. (I9063d)
Perubahan API
- Fungsi
rememberLauncherForActivityResult
kini menampilkan peluncur yang tidak lagi menggunakan fungsiunregister()
. Pendaftaran dan pembatalan pendaftaran peluncur otomatis ditangani olehrememberLauncherForActivityResult
. (I2443e)
Kompatibilitas Compose
androidx.activity:activity-compose:1.3.0-alpha08
hanya kompatibel dengan Compose versi1.0.0-beta07
dan yang lebih baru.
Versi 1.3.0-alpha07
21 April 2021
androidx.activity:activity:1.3.0-alpha07
, androidx.activity:activity-compose:1.3.0-alpha07
, dan androidx.activity:activity-ktx:1.3.0-alpha07
dirilis. Versi 1.3.0-alpha07 berisi commit ini.
Perbaikan Bug
rememberLauncherForActivityResult
kini menampilkan referensi stabil ke instanceActivityResultLauncher
yang sama meskipun kontrak berubah karena rekomposisi. (Id2d6d)- Menggunakan versi Fragment yang tidak stabil di atas
1.3.0
tidak akan lagi melemparkan error lint positif palsu (PP) yang meminta Anda untuk menggunakan1.3.0
. (aosp/1670206, b/184847092)
Versi 1.3.0-alpha06
7 April 2021
androidx.activity:activity:1.3.0-alpha06
, androidx.activity:activity-compose:1.3.0-alpha06
, dan androidx.activity:activity-ktx:1.3.0-alpha06
dirilis. Versi 1.3.0-alpha06 berisi commit ini.
Perubahan API
registerForActivityResult()
API telah diganti namanya menjadirememberLauncherForActivityResult()
untuk menunjukkan secara lebih baik bahwaActivityResultLauncher
yang ditampilkan adalah objek terkelola yang diingat atas nama Anda. Jika mencoba memanggilunregister
, kiniActivityResultLauncher
yang ditampilkan akan melemparkan error. (I2bb6d)LocalOnBackPressedDispatcherOwner.current
danLocalActivityResultRegistryOwner.current
kini menampilkan nilai nullable untuk menentukan secara lebih baik apakah nilai tersebut tersedia dalam komposisi saat ini. API yang memerlukan API tersebut, sepertiBackHandler
danrememberLauncherForActivityResult()
, kini masing-masing akan melemparkan error yang lebih deskriptif jika pemilik dasar tidak ditemukan.NavHost
kini berfungsi meskipunOnBackPressedDispatcherOwner
tidak ditemukan, sama kasusnya saat melihat pratinjauNavHost
. (I7d8b4)
Perbaikan Bug
BackHandler
kini akan menangkap penekanan kembali dengan semestinya saat ActivitySTOPPED
, laluSTARTED
lagi, dan callback lainnya ditambahkan dengan LifecycleOwner. (I71de6, b/182284739)- Menggunakan ekstensi metode
launch()
denganActivityResultContract
kustom yang memiliki inputUnit
tidak akan lagi menyebabkanNullPointerException
(I76282, b/183837954)
Versi 1.3.0-alpha05
24 Maret 2021
androidx.activity:activity:1.3.0-alpha05
, androidx.activity:activity-compose:1.3.0-alpha05
, dan androidx.activity:activity-ktx:1.3.0-alpha05
dirilis. Versi 1.3.0-alpha05 berisi commit ini.
Perbaikan Bug
- Dari Activity 1.2.2: Memperbaiki masalah dalam pemeriksaan lint
InvalidFragmentVersionForActivityResult
yang menyebabkan positif palsu (PP) saat menggunakan Fragment 1.3.1 atau yang lebih tinggi. (I54da1, b/182388985) - Dari Activity 1.2.2:
ComponentActivity
sekarang menghindariClassNotFoundException
saat meluncurkanIntent
dariActivityResultContract
yang sebelumnya disimpan sebagai tambahan diIntent
lain. (Ieff05, b/182906230)
Update Dependensi
- Dari Activity 1.2.2: Activity sekarang bergantung pada Lifecycle
2.3.1
.
Versi 1.3.0-alpha04
10 Maret 2021
androidx.activity:activity:1.3.0-alpha04
, androidx.activity:activity-compose:1.3.0-alpha04
, dan androidx.activity:activity-ktx:1.3.0-alpha04
dirilis. Versi 1.3.0-alpha04 berisi commit ini.
Perbaikan Bug
- Dari Activity
1.2.1
:RequestMultiplePermissions
sekarang selalu menampilkan hasil untuk semua izin yang diminta, bukan hanya izin yang sebelumnya tidak diberikan. (I50bc3, b/180884668) - Dari Activity
1.2.1
:ActivityResultRegistry
sekarang memastikan bahwa permintaanlaunch()
yang sedang berlangsung akan menampilkan hasilnya meskipun Anda melakukanunregister()
, laluregister()
lagi dengan kunci yang sama. (I9ef34, b/181267562) - Activity Compose tidak lagi menambahkan dependensi pengujian ke classpath runtime. (Ifd8b3)
- Memperbaiki masalah pada
BackHandler
ketika lambdaonBack
yang ditetapkan sebelumnya masih digunakan setelah rekomposisi. (8eb5eb)
Versi 1.3.0-alpha03
24 Februari 2021
androidx.activity:activity:1.3.0-alpha03
, androidx.activity:activity-compose:1.3.0-alpha03
, dan androidx.activity:activity-ktx:1.3.0-alpha03
dirilis. Versi 1.3.0-alpha03 berisi commit ini.
Fitur Baru
- Kini terdapat fungsi
registerForActivityResult
Composable untuk mendapatkan hasil dari aktivitas dalam composable. (Ia7851, b/172690553)
Perubahan API
LocalOnBackPressedDispatcherOwner
sekarang memiliki fungsiprovides
yang dapat digunakan denganCompositionLocalProvider
, menggantikanasProvidableCompositionLocal()
API. (I45d24)
Versi 1.3.0-alpha02
10 Februari 2021
androidx.activity:activity:1.3.0-alpha02
, androidx.activity:activity-compose:1.3.0-alpha02
, dan androidx.activity:activity-ktx:1.3.0-alpha02
dirilis. Versi 1.3.0-alpha02 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah di Activity Compose
1.3.0-alpha01
yang menyebabkan pengecualianNoSuchMethodError: No static method setContent
saat menggunakan Compose1.0.0-alpha12
. Semua pengguna Compose harus bergantung pada1.3.0-alpha02
dan yang lebih tinggi. (b/179911234)
Perubahan API
BackHandler
API dapat digunakan untuk mengizinkan Composable guna menangkap tombol kembali sistem. (I58ed5, b/172154006)
Versi 1.3.0-alpha01
10 Februari 2021
androidx.activity:activity:1.3.0-alpha01
, androidx.activity:activity-compose:1.3.0-alpha01
, dan androidx.activity:activity-ktx:1.3.0-alpha01
dirilis. Versi 1.3.0-alpha01 berisi commit ini.
Fitur Baru
- Artefak
activity-compose
baru menyediakan helper khusus Jetpack Compose untuk API khususandroidx.activity
.ComponentActivity.setContent
telah dipindahkan dariandroidx.compose.ui.platform.setContent
keandroidx.activity.compose.setContent
. (Icf416)
Masalah Umum
- Menggunakan Activity Compose
1.3.0-alpha01
dan library yang bergantung padanya, sepertiandroidx.compose.ui:ui-test-junit4:1.0.0-alpha12
, akan menghasilkan pengecualianNoSuchMethodError: No static method setContent
. (b/179911234)
Versi 1.2.4
Versi 1.2.4
21 Juli 2021
androidx.activity:activity:1.2.4
dan androidx.activity:activity-ktx:1.2.4
dirilis. Versi 1.2.4 berisi commit ini.
Perbaikan Bug
- Dari Activity
1.3.0-rc02
: Callback ActivityResultRegistry kini disimpan dan dipulihkan dengan benar, sehingga callback tidak diduplikasi di savedState. (I97816, b/191893160)
Versi 1.2.3
Versi 1.2.3
5 Mei 2021
androidx.activity:activity:1.2.3
dan androidx.activity:activity-ktx:1.2.3
dirilis. Versi 1.2.3 berisi commit ini.
Perbaikan Bug
- Menggunakan ekstensi metode
launch()
denganActivityResultContract
kustom yang memiliki inputUnit
tidak akan lagi menyebabkanNullPointerException
(I76282, b/183837954) - Memperbaiki error lint positif palsu yang memberi tahu Anda untuk menggunakan Fragment
1.3.0
saat menggunakan build snapshot, alfa, beta, atau RC versi Fragment yang lebih baru. (f4a57e, b/184847092)
Versi 1.2.2
Versi 1.2.2
24 Maret 2021
androidx.activity:activity:1.2.2
dan androidx.activity:activity-ktx:1.2.2
dirilis. Versi 1.2.2 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah dalam pemeriksaan lint
InvalidFragmentVersionForActivityResult
yang menyebabkan positif palsu (PP) saat menggunakan Fragment 1.3.1 atau yang lebih tinggi. (I54da1, b/182388985) ComponentActivity
sekarang menghindariClassNotFoundException
saat meluncurkanIntent
dariActivityResultContract
yang sebelumnya disimpan sebagai tambahan diIntent
lain. (Ieff05, b/182906230)
Update Dependensi
- Activity sekarang bergantung pada Lifecycle
2.3.1
.
Versi 1.2.1
Versi 1.2.1
10 Maret 2021
androidx.activity:activity:1.2.1
dan androidx.activity:activity-ktx:1.2.1
dirilis. Versi 1.2.1 berisi commit ini.
Perbaikan Bug
RequestMultiplePermissions
sekarang selalu menampilkan hasil untuk semua izin yang diminta, bukan hanya izin yang sebelumnya tidak diberikan. (I50bc3, b/180884668)ActivityResultRegistry
sekarang memastikan bahwa permintaanlaunch()
yang sedang berlangsung akan menampilkan hasilnya meskipun Anda melakukanunregister()
, laluregister()
lagi dengan kunci yang sama. (I9ef34, b/181267562)
Versi 1.2.0
Versi 1.2.0
10 Februari 2021
androidx.activity:activity:1.2.0
dan androidx.activity:activity-ktx:1.2.0
dirilis. Versi 1.2.0 berisi commit ini.
Perubahan utama sejak versi 1.1.0
- Activity Result API:
ComponentActivity
kini menyediakanActivityResultRegistry
yang memungkinkan Anda menanganistartActivityForResult()
+onActivityResult()
serta alurrequestPermissions()
+onRequestPermissionsResult()
tanpa mengganti metode di Activity atau Fragment, memberikan peningkatan keamanan jenis melaluiActivityResultContract
, dan menyediakan hook untuk menguji alur ini. Lihat Mendapatkan Hasil dari Activity terbaru.
ContextAware
:ComponentActivity
kini mengimplementasikanContextAware
sehingga Anda dapat menambahkan satu atau beberapa instanceOnContextAvailableListener
yang akan menerima callback sebelumActivity.onCreate()
dasar.- Dengan ekstensi Kotlin
withContextAvailable()
yang ditangguhkan, Anda dapat menjalankan blok non-penangguhan saat Context tersedia dan menampilkan hasil. - API ini digunakan oleh
FragmentActivity
di Fragment 1.3.0 untuk memulihkan statusFragmentManager
. Setiap pemroses yang ditambahkan ke subclassFragmentActivity
akan berjalan setelah pemroses tersebut. - API ini digunakan oleh
AppCompatActivity
di AppCompat 1.3.0-alpha02 atau yang lebih tinggi. Setiap pemroses yang ditambahkan ke subclassAppCompatActivity
akan berjalan setelah pemroses tersebut.
- Dengan ekstensi Kotlin
Dukungan
ViewTree
:ComponentActivity
sekarang mendukungViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
, danViewTreeSavedStateRegistryOwner
API yang ditambahkan di Lifecycle2.3.0
dan SavedState1.1.0
sehingga API tersebut menampilkan Activity sebagaiLifecycleOwner
,ViewModelStoreOwner
, danSavedStateRegistryOwner
untuk setiap View yang ditambahkan langsung keComponentActivity
.
- reportFullyDrawn() backport - Metode
Activity
darireportFullyDrawn()
telah di-backport dalamComponentActivity
agar berfungsi di semua API level, memperbaiki error pada API 19, dan menambahkan rekaman aktivitas untuk metode ini untuk semua API level.
Versi 1.2.0-rc01
16 Desember 2020
androidx.activity:activity:1.2.0-rc01
dan androidx.activity:activity-ktx:1.2.0-rc01
dirilis. Versi 1.2.0-rc01 berisi commit ini.
Perbaikan Bug
- Kini,
ActivityResultRegistry
selalu memulihkan status sama persis yang disimpan. (Idd56b) - Menambahkan pelacakan ke
ComponentActivity.reportFullyDrawn
(Ic7632)
Kontribusi Eksternal
ComponentActivity
sekarang menggantireportFullyDrawn()
, yang memungkinkannya dipanggil di semua API level dan memperbaiki error saat memanggil metode ini tanpa izin sistem yang sesuai di perangkat API 19. Terima kasih, Simon Schiller! (b/163239764, #103)
Versi 1.2.0-beta02
2 Desember 2020
androidx.activity:activity:1.2.0-beta02
dan androidx.activity:activity-ktx:1.2.0-beta02
dirilis. Versi 1.2.0-beta02 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah saat Activity Result API tidak akan menunggu Lifecycle menjadi
STARTED
sebelum memberikan hasil saat terdaftar denganLifecycle
. (I109ea)
Kontribusi Eksternal
- Memperbarui dokumentasi untuk
launch()
agar secara eksplisit menyatakan bahwa perintah ini dapat melemparkanActivityNotFoundException
. Terima kasih Michał Zieliński! (aosp/1493580)
Versi 1.2.0-beta01
1 Oktober 2020
androidx.activity:activity:1.2.0-beta01
dan androidx.activity:activity-ktx:1.2.0-beta01
dirilis. Versi 1.2.0-beta01 berisi commit ini.
Perbaikan Bug
ActivityResultRegistry
sekarang menghasilkan bilangan bulat secara acak sampai menemukan bilangan yang tidak dialokasikan untuk digunakan sebagairegister()
kode permintaan, sehingga mencegah kemungkinan bilangan bulat berlebih yang disebabkan oleh peningkatan kode permintaan. (b/168779518)Observer
Lifecycle
dihapus dengan benar saat memanggilunregister()
diActivityResultLauncher
. (b/165608393)
Perubahan Perilaku
ActivityResultRegistry
sekarang menampilkanIllegalStateException
saat mencoba memanggilregister()
denganLifecycleOwner
yangLifecycle
-nya telah mencapaiSTARTED
. (b/165435866)
Pembaruan Dokumentasi
- Dokumentasi
ContextAware
ditautkan keLifecycleOwner
untuk menandai callbackLifecycle
sebagai tempat yang tepat bagi peristiwa pembuatan dan penghancuran. (aosp/1414152)
Versi 1.2.0-alpha08
19 Agustus 2020
androidx.activity:activity:1.2.0-alpha08
dan androidx.activity:activity-ktx:1.2.0-alpha08
dirilis. Versi 1.2.0-alpha08 berisi commit ini.
Fitur Baru
ComponentActivity
kini mengimplementasikanContextAware
sehingga Anda dapat menambahkan satu atau beberapa instanceOnContextAvailableListener
yang akan menerima callback sebelumActivity.onCreate()
dasar. (b/161390636)- Dengan ekstensi Kotlin
withContextAvailable()
yang ditangguhkan, Anda dapat menjalankan blok non-penangguhan saat Context tersedia dan menampilkan hasil. (I8290c) - API ini digunakan oleh
FragmentActivity
di Fragment 1.3.0-alpha08 untuk memulihkan statusFragmentManager
. Setiap pemroses yang ditambahkan ke subclassFragmentActivity
akan berjalan setelah pemroses tersebut. (I513da) - API ini digunakan oleh
AppCompatActivity
di AppCompat 1.3.0-alpha02. Setiap pemroses yang ditambahkan ke subclassAppCompatActivity
akan berjalan setelah pemroses tersebut. (I513da)
- Dengan ekstensi Kotlin
Perbaikan Bug
- Memperbaiki masalah pemeriksaan Lint
ActivityResultFragmentVersionDetector
yang menyebabkannya terganggu saat menggunakan Lint 27.1.0 atau versi yang lebih baru. (b/162155191)
Versi 1.2.0-alpha07
22 Juli 2020
androidx.activity:activity:1.2.0-alpha07
dan androidx.activity:activity-ktx:1.2.0-alpha07
dirilis. Versi 1.2.0-alpha07 berisi commit ini.
Fitur Baru
- Menambahkan pemeriksaan lint
InvalidFragmentVersionForActivityResult
baru yang memverifikasi bahwa Anda menggunakan Fragment1.3.0-alpha07
saat menggunakan Activity Result API, menghindari error runtime karena masalah "kode permintaan tidak valid” dan permintaan izin yang tidak berfungsi akibat penggunaan versi Fragment yang lebih lama. (b/152554847)
Kontribusi Eksternal
- Memperbaiki
ArrayIndexOutOfBoundsException
saat menguraikan hasil untuk kontrak Activity ResultRequestPermission
. (I8f9e3, b/161057605)
Versi 1.2.0-alpha06
10 Juni 2020
androidx.activity:activity:1.2.0-alpha06
dan androidx.activity:activity-ktx:1.2.0-alpha06
dirilis. Versi 1.2.0-alpha06 berisi commit ini.
Fitur Baru
- Anda kini dapat mengurai class
ActivityResult
dalam Kotlin untuk mengaksesrequestCode
danintent
secara langsung. (b/157212935) ActivityResultLauncher
kini memungkinkan Anda mendapatkanActivityResultContract
yang digunakan untuk mendaftarkan peluncur. (b/156875743)
Perubahan API
- Perubahan yang dapat menyebabkan gangguan: Metode
invoke()
padaActivityResultRegistry
telah diganti namanya menjadionLaunch()
. (b/157496491) - Kontrak
OpenMultipleDocuments
kini menampilkan daftar kosong, bukannull
ke callback terdaftar jika tidak ada hasil yang ditampilkan. (b/157348014)
Versi 1.2.0-alpha05
20 Mei 2020
androidx.activity:activity:1.2.0-alpha05
dan androidx.activity:activity-ktx:1.2.0-alpha05
dirilis. Versi 1.2.0-alpha05 berisi commit ini.
Fitur Baru
- Menambahkan dukungan untuk
ViewTreeViewModelStoreOwner
dari Lifecycle2.3.0-alpha03
, danViewTreeSavedStateRegistryOwner
dari SavedState1.1.0-alpha01
saat menggunakanView
dalamComponentActivity
. (aosp/1297993, aosp/1300264)
Perubahan API
- Kontrak
TakePicture
kini menampilkanboolean
yang menunjukkan keberhasilan, bukan thumbnailBitmap
karena sangat jarang didukung oleh aplikasi kamera saat menulis gambar keUri
yang disediakan. (b/154302879) - Ekstensi
invoke()
diActivityResultLauncher
telah dihapus dan diganti denganlaunch()
secara eksplisit untuk menunjukkan dengan lebih baik bahwa ini adalah operasi asinkron. Ekstensi Kotlin untuklaunch
telah ditambahkan ke paketandroidx.activity.result
untukActivityResultLauncher<Void>
danActivityResultLauncher<Unit>
yang masing-masing menghilangkan kebutuhan untuk meneruskannull
atauUnit
, yang mencerminkan perilaku dari ekstensiinvoke()
sebelumnya. (aosp/1304674, aosp/1304675) - Metode
IntentSenderRequest.Builder
untuksetFlagsMask()
dansetFlagsValues()
telah digabung menjadi satu metodesetFlags()
. (aosp/1302111)
Perbaikan Bug
- Saat mendaftarkan
ActivityResultCallback
denganLifecycleOwner
, masalah ketika callback akan dipicu sebelum status mencapaiSTARTED
telah diperbaiki. (aosp/1309744)
Perubahan Perilaku
ActivityResultRegistry
sekarang menghasilkan kode permintaan yang dimulai dari0xFFFF
, bukan dari0
, yang mencegah tumpang-tindih saat menggunakanstartActivityForResult()
ataurequestPermissions()
dalam suatu aktivitas. (aosp/1302324)
Versi 1.2.0-alpha04
29 April 2020
androidx.activity:activity:1.2.0-alpha04
dan androidx.activity:activity-ktx:1.2.0-alpha04
dirilis. Versi 1.2.0-alpha04 berisi commit ini.
Fitur Baru
- Menambahkan kontrak yang dapat memanggil startIntentSenderForResult pada ActivityResult API. (b/153007517)
Perubahan API
- Metode
prepareCall()
telah diganti namanya menjadiregisterForActivityResult()
, padaComponentActivity
di sini dan di Fragment1.3.0-alpha04
. (aosp/1278717) - Kontrak
GetContents
,OpenDocuments
, danRequestPermissions
secara berurutan telah diganti namanya menjadiGetMultipleContents
,OpenMultipleDocuments
, danRequestMultiplePermissions
. (aosp/1280161) ComponentActivity
sekarang mengimplementasikan antarmukaActivityResultRegisteryOwner
. (aosp/1290888)- -
startActivityForResult()
/onActivityResult()
danonRequestPermissionsResult()
API diComponentActivity
tidak digunakan lagi. Harap gunakan Activity Result API. (b/154751887)
Perbaikan Bug
- Saat menggunakan kontrak
GetMultipleContents
danOpenMultipleDocuments
lalu memilih satu item, item tersebut kini ditampilkan dengan benar ke callback Anda. (b/152941153)
Versi 1.2.0-alpha03
1 April 2020
androidx.activity:activity:1.2.0-alpha03
dan androidx.activity:activity-ktx:1.2.0-alpha03
dirilis. Versi 1.2.0-alpha03 berisi commit ini.
Fitur Baru
- Menambahkan kontrak
TakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
, danCreateDocument
pada sekumpulan kontrak yang dibuat sebelumnya yang disediakan olehActivityResultContracts
. (aosp/1262482, aosp/1266916, aosp/1268960) - Activity Result API kini mendukung peluncuran aktivitas untuk hasil dengan
ActivityOptionsCompat
opsional. (b/151860054)
Perubahan API
- Kontrak
TakePicture
kini memerlukan inputUri
untuk destinasi penyimpanan gambar. Kontrak sebelumnya yang tidak memerlukan input apa pun telah diganti namanya menjadiTakePicturePreview
. (aosp/1262482) - Metode
registerActivityResultCallback()
padaActivityResultRegistry
telah diganti namanya menjadiregister()
. (aosp/1267621) - Metode
dispose()
padaActivityResultLauncher
telah diganti namanya menjadiunregister()
danunregisterResultCallback()
padaActivityResultRegistry
telah dihapus. (aosp/1267621) - Metode
createIntent()
ActivityResultContact
kini memerlukanContext
sebagai tambahan dari input untuk memungkinkan pembuatan Intent eksplisit. (aosp/1238800) ActivityResultContract
kini dapat menggantigetSynchronousResult()
untuk memberikan hasil tanpa memanggilstartActivityForResult
. Kode ini digunakan oleh kontrakRequestPermission
danRequestPermissions
untuk memberikan status 'granted' dengan benar jika izin yang diminta telah diberikan. (b/151110799)- Kontrak
Dial
yang sebelumnya tersedia telah dihapus karenaIntent
tidak dimaksudkan untuk digunakan denganstartActivityForResult()
. (aosp/1266916) - Banyak Activity Result API yang tidak dimaksudkan untuk diperpanjang kini menjadi
final
. Ini termasukgetActivityResultRegistry()
, metodeprepareCall()
, semua metodeActivityResultRegistry
kecualiinvoke()
, dan sejumlah kontrak default yang tidak mendukung tambahan opsional. (b/152439361)
Perbaikan Bug
- Memperbaiki
NullPointerException
padaActivityResultRegistry
saat mencoba menyampaikan hasil ke callback yang belum didaftarkan ulang setelah perubahan konfigurasi;ActivityResultRegistry
kini menyimpan hasil yang tertunda ini, lalu menyampaikannya saat callback didaftarkan ulang. (b/152137004)
Versi 1.2.0-alpha02
18 Maret 2020
androidx.activity:activity:1.2.0-alpha02
dan androidx.activity:activity-ktx:1.2.0-alpha02
dirilis. Versi 1.2.0-alpha02 berisi commit ini.
Fitur Baru
- ActivityResultRegistry:
ComponentActivity
kini menyediakanActivityResultRegistry
yang memungkinkan Anda menangani alurstartActivityForResult()
+onActivityResult()
sertarequestPermissions()
+onRequestPermissionsResult()
tanpa mengganti metode dalam Activity atau Fragment, meningkatkan keamanan jenis melaluiActivityResultContract
, serta menyediakan hook untuk menguji alur ini. Lihat Mendapatkan Hasil dari Activity terbaru. (b/125158199)
Versi 1.2.0-alpha01
4 Maret 2020
androidx.activity:activity:1.2.0-alpha01
dan androidx.activity:activity-ktx:1.2.0-alpha01
dirilis. Versi 1.2.0-alpha01 berisi commit ini.
Fitur Baru
- Menambah dukungan untuk
ViewTreeLifecycleOwner.get(View)
API yang ditambahkan di Lifecycle2.3.0-alpha01
sehingga API ini menampilkan Activity sebagaiLifecycleOwner
untuk semua View yang ditambahkan langsung ke Activity. (aosp/1182955)
Perbaikan Bug
- Memperbaiki regresi yang diperkenalkan di Activity
1.1.0
saat menjalankan versi platform yang lama denganonBackPressed()
yang akan menyebabkanIllegalStateException
karena adanya bug diandroid.app.FragmentManager
. (b/146290338)
Versi 1.1.0
Versi 1.1.0
22 Januari 2020
androidx.activity:activity:1.1.0
dirilis. Versi 1.1.0 berisi commit ini.
Perubahan penting sejak versi 1.0.0
- Integrasi Lifecycle ViewModel SavedState:
SavedStateViewModelFactory
sekarang menjadi setelan pabrik default yang digunakan saat menggunakanby viewModels()
, konstruktorViewModelProvider
, atauViewModelProviders.of()
denganComponentActivity
atau subclass-nya.
Versi 1.1.0-rc03
4 Desember 2019
androidx.activity:activity:1.1.0-rc03
dan androidx.activity:activity-ktx:1.1.0-rc03
dirilis. Versi 1.1.0-rc03 berisi commit ini.
Perubahan dependensi
- Activity sekarang bergantung pada Lifecycle
2.2.0-rc03
dan Lifecycle ViewModel SavedState1.0.0-rc03
.
Versi 1.1.0-rc02
7 November 2019
androidx.activity:activity:1.1.0-rc02
dan androidx.activity:activity-ktx:1.1.0-rc02
dirilis. Versi 1.1.0-rc02 berisi commit ini.
Perubahan dependensi
- Activity sekarang bergantung pada Lifecycle
2.2.0-rc02
.
Versi 1.1.0-rc01
23 Oktober 2019
androidx.activity:activity:1.1.0-rc01
dan androidx.activity:activity-ktx:1.1.0-rc01
dirilis tanpa perubahan dari versi 1.1.0-beta01
. Versi 1.1.0-rc01 berisi commit ini.
Versi 1.1.0-beta01
9 Oktober 2019
androidx.activity:activity:1.1.0-beta01
dan androidx.activity:activity-ktx:1.1.0-beta01
dirilis. Versi 1.1.0-beta01 berisi commit ini.
Perubahan dependensi
- Activity sekarang bergantung pada SavedState 1.0.0 stabil.
Versi 1.1.0-alpha03
5 September 2019
androidx.activity:activity:1.1.0-alpha03
dan androidx.activity:activity-ktx:1.1.0-alpha03
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
- Activity sekarang bergantung pada Core 1.1.0 stabil.
Perbaikan bug
- Activity sekarang bergantung pada Lifecycle
2.2.0-alpha04
.
Versi 1.1.0-alpha02
7 Agustus 2019
androidx.activity:activity:1.1.0-alpha02
dan androidx.activity:activity-ktx:1.1.0-alpha02
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
SavedStateViewModelFactory
sekarang menjadi setelan pabrik default yang digunakan saat menggunakanby viewModels()
, konstruktorViewModelProvider
, atauViewModelProviders.of()
denganComponentActivity
(b/135716331)
Versi 1.1.0-alpha01
2 Juli 2019
androidx.activity:activity:1.1.0-alpha01
dan androidx.activity:activity-ktx:1.1.0-alpha01
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
activity
sekarang bergantung pada Lifecycle2.2.0-alpha02
. (aosp/1007817)activity-ktx
menambahkan dependensi padalifecycle-runtime-ktx
; Anda tidak perlu lagi menambahkannya secara eksplisit ke dependensi Anda saat menggunakanactivity-ktx
atau library yang bergantung padaactivity-ktx
(sepertifragment-ktx
). (aosp/987162)
Versi 1.0.0
Versi 1.0.0
5 September 2019
androidx.activity:activity:1.0.0
dan androidx.activity:activity-ktx:1.0.0
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur Utama 1.0.0
- ComponentActivity:
ComponentActivity
berfungsi sebagai class dasar baru untukFragmentActivity
dalam Fragment1.1.0
dan, dengan demikian,AppCompatActivity
dalam AppCompat1.1.0
. - activity-ktx: Modul
activity-ktx
mencakup ekstensi properti Kotlinby viewModels
untuk mengakses ViewModels. Modul ini otomatis disertakan saat Anda menyertakanfragment-ktx
dari Fragment1.1.0
. - OnBackPressedDispatcher: Sebagai alternatif composable dari penggantian
onBackPressed()
, sekarang Anda dapat mendaftarkanOnBackPressedCallback
dariLifecycleOwner
mana pun (misalnya fragmen) untuk menangkap peristiwa tombol kembali sistem. Lambda dengan penerima versiaddCallback
telah ditambahkan keactivity-ktx
. Lihat Menyediakan dokumentasi navigasi kembali kustom untuk detail selengkapnya. - Penghentian onRetainCustomNonConfigurationInstance :
onRetainCustomNonConfigurationInstance()
dangetLastCustomNonConfigurationInstance()
API yang terkait telah dihentikan penggunaannya. Sebaiknya gunakan ViewModels untuk menyimpan status non-konfigurasi, karena menawarkan solusi composable yang sesuai untuk semuaViewModelStoreOwner
yang memperjelas kepemilikan objek yang dipertahankan, serta memberikan callbackonCleared()
untuk membersihkan resource saat aktivitas tersebut akhirnya dihancurkan.
Versi 1.0.0-rc01
2 Juli 2019
androidx.activity:activity:1.0.0-rc01
dan androidx.activity:activity-ktx:1.0.0-rc01
dirilis tanpa perubahan dari versi 1.0.0-beta01
. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Versi 1.0.0-beta01
5 Juni 2019
androidx.activity::activity:1.0.0-beta01
dan androidx.activity:activity-ktx:1.0.0-beta01
dirilis tanpa perubahan dari versi 1.0.0-alpha08
. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Versi 1.0.0-alpha08
7 Mei 2019
androidx.activity:activity:1.0.0-alpha08
dan androidx.activity:activity-ktx:1.0.0-alpha08
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perubahan API
- Perubahan yang dapat menyebabkan gangguan: Metode
addOnBackPressedCallback
danremoveOnBackPressedCallback
yang sebelumnya tidak digunakan lagi dalamComponentActivity
telah dihapus. aosp/953857 - Metode
setEnabled()
danisEnabled()
dariOnBackPressedCallback
sekarang sudah final. b/131416833 - Metode
remove()
dariOnBackPressedCallback
sekarang sudah final. aosp/952720 OnBackPressedDispatcher
sekarang memiliki konstruktor publik, sehingga Anda dapat membuat instance Anda sendiri untuk pengujian, dll. aosp/953431onBackPressed()
untukComponentActivity
sekarang secara eksplisit ditandai sebagai@MainThread
aosp/952721
Perbaikan bug
- Memperbaiki
ConcurrentModificationException
saat memanggilremove()
dari dalam metodehandleOnBackPressed()
dariOnBackPressedCalback
yang ditambahkan denganLifecycleOwner
. b/131765095
Versi 1.0.0-alpha07
25 April 2019
androidx.activity:activity:1.0.0-alpha07
dan androidx.activity:activity-ktx:1.0.0-alpha07
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perubahan API
Rilis ini membuat perubahan signifikan pada penanganan onBackPressed()
. Lihat dokumentasi navigasi kembali kustom yang diperbarui untuk detail selengkapnya.
- Metode untuk
OnBackPressedCallback
danOnBackPressedDispatcher
telah ditandai sebagai@MainThread
. (aosp/943813) - Metode
handleOnBackPressed()
tidak lagi menampilkanboolean
. Sebagai gantinya,OnBackPressedCallback
sekarang merupakan class abstrak yang dapat diaktifkan atau dinonaktifkan -handleOnBackPressed()
hanya akan dipanggil saat metodeisEnabled()
baru menampilkan true. Dalam hal ini, Anda harus menangani tombol kembali. (aosp/944518) - Metode
addCallback
OnBackPressedDispatcher
tidak lagi menampilkan instanceCancellable
.OnBackPressedCallback
sekarang berisi metoderemove()
yang memenuhi fungsionalitas ini, yang memungkinkan Anda memanggilremove()
selamahandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
sekarang berisi callback yang dibatasi penerima untukaddCallback
yang menerima lambda yang mengimplementasikanhandleOnBackPressed()
serta memiliki akses keisEnabled
danremove()
(aosp/944520)
Versi 1.0.0-alpha06
3 April 2019
androidx.activity:activity:1.0.0-alpha06
dan androidx.activity:activity-ktx:1.0.0-alpha06
dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perubahan API
- ComponentActivity sekarang berisi konstruktor kedua yang menggunakan
@LayoutRes int
, menggantikan perilaku sebelumnya yang menganotasi class AppCompatActivity dengan@ContentView
. Pendekatan ini berfungsi baik dalam modul library maupun aplikasi. (b/128352521) - API terkait
OnBackPressedCallback
pada ComponentActivity tidak digunakan lagi dan digantikan denganOnBackPressedDispatcher
baru, yang dapat diambil melaluigetOnBackPressedDispatcher()
. (aosp/922523) - Metode untuk menambahkan
OnBackPressedCallback
baru keOnBackPressedDispatcher
sekarang menampilkan objekCancellable
, yang memungkinkan penghapusan callback tanpa memerlukan referensi eksplisit keOnBackPressedDispatcher
. (aosp/922523) - Penambahan
OnBackPressedCallback
denganLifecycleOwner
yang terkait kini menghasilkan penambahanOnBackPressedCallback
saat Lifecycle dimulai dan penghapusannya saat Lifecycle dihentikan. (aosp/922523)
Versi 1.0.0-alpha05
13 Maret 2019
androidx.activity:activity:1.0.0-alpha05
dan
androidx.activity:activity-ktx:1.0.0-alpha05
dirilis. Daftar lengkap commit
yang disertakan dalam rilis ini dapat dilihat di sini.
Fitur baru
- Penelusuran anotasi
@ContentView
kini disimpan dalam cache (b/123709449)
Versi 1.0.0-alpha04
30 Januari 2019
androidx.activity:activity 1.0.0-alpha04
dan androidx.activity:activity-ktx 1.0.0-alpha04
dirilis.
Fitur baru
- Menambahkan dukungan untuk anotasi class
@ContentView
yang memungkinkan Anda menunjukkan file XML tata letak yang perlu di-inflate sebagai alternatif penggunaansetContentView()
. (aosp/837619)
Perubahan API
- Menambahkan catatan bahwa
getViewModelStore()
tidak boleh diganti dan akan dijadikan versi final dalam rilis mendatang. Harap ajukan permintaan fitur jika saat ini Anda mengganti metode ini. (aosp/837619)
Perbaikan bug
- Modul
activity
sekarang bergantung pada ViewModel versi 2.1.0-alpha02 agar sesuai dengan dependensi modulactivity-ktx
.
Versi 1.0.0-alpha03
17 Desember 2018
androidx.activity 1.0.0-alpha03
dirilis.
Fitur baru
- ComponentActivity sekarang mengimplementasikan
BundleSavedStateRegistryOwner
dan bergantung pada library SavedState yang baru dirilis [aosp/815133] - ComponentActivity sekarang menyelesaikan bug framework Android yang akan menyebabkan InputMethodManager membocorkan tampilan terfokus terakhir [b/37122102]
Versi 1.0.0-alpha02
3 Desember 2018
Perubahan API
- Menambahkan catatan bahwa
getLifecycle()
tidak boleh diganti dan akan dijadikanfinal
dalam rilis mendatang. Harap ajukan permintaan fitur jika saat ini Anda mengganti metode ini. (aosp/815834)
Versi 1.0.0-alpha01
5 November 2018
androidx.activity 1.0.0-alpha01
memperkenalkan
ComponentActivity
, sebuah class dasar baru dari FragmentActivity
dan
AppCompatActivity
yang ada.
Fitur baru
- Anda kini dapat mendaftarkan
OnBackPressedCallback
melaluiaddOnBackPressedCallback
untuk menerima callbackonBackPressed()
tanpa perlu mengganti metode dalam aktivitas Anda. - Menambahkan delegasi properti Kotlin
by viewModels()
baru untuk mengambilViewModel
dariComponentActivity
. - Peristiwa input yang tertunda (seperti klik) sekarang dibatalkan di
onStop()
.
Perubahan API
- Implementasi
LifecycleOwner
danViewModelStoreOwner
telah dialihkan dariFragmentActivity
keComponentActivity
. onRetainCustomNonConfigurationInstance
tidak digunakan lagi. GunakanViewModel
untuk menyimpan objek yang perlu dipertahankan meskipun konfigurasi diubah.