Aktivitas

Mengakses API composable yang dibuat dari Activity.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
17 April 2024 1.9.0 - - -

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.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")
}

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.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.9

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 mengimplementasikan OnUserLeaveHintProvider guna mengizinkan komponen ke callback untuk peristiwa onUserLeaveHint.
  • OnBackPressedCallback, BackHandler, dan PredictiveBackHandler API kini memberikan peringatan saat memanggil onBackPressedDispatcher.onBackPressed() saat menangani kembali karena hal tersebut 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 ke activity. activity-ktx sekarang benar-benar kosong.
    • Sebagai bagian dari konversi ActivityResultLauncher ke Kotlin, metode getContract sekarang menjadi properti Kotlin abstrak. Ini adalah perubahan yang kompatibel dengan biner, tetapi sumber akan rusak jika implementasi ActivityResultLauncher Anda ditulis dalam Kotlin.

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

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 memanggil OnBackPressedDispatcher 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

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 baru akan mengambil alih untuk memulai Gestur Kembali Prediktif baru. (I3482e)
  • Memperbaiki error saat mengakses onBackPressedDispatcher dari ComponentActivity untuk pertama kalinya dari thread latar belakang. Sekarang onBackPressedDispatcher dapat diakses di thread mana pun dengan aman. (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 Kotlin. Tindakan ini memastikan nullability generik pada kontrak yang diteruskan ke register akan diteruskan dengan benar ke ActivityResultLauncher yang ditampilkan kepada Anda. (I121f0)
  • ActivityResult telah ditulis ulang dalam Kotlin. Ekstensi Kotlin ActivityResult yang mendukung destrukturisasi ke dalam kolom resultCode dan data telah dipindahkan dari activity-ktx ke activity. (I0565a)
  • Ekstensi Kotlin by viewModels() untuk ComponentActivity dan trackPipAnimationHintView telah dipindahkan dari activity-ktx ke activity. Artefak activity-ktx kini benar-benar kosong. (I0a444)

Perbaikan Bug

  • enableEdgeToEdge API kini menggambar di sekitar potongan layar. (a3644b, b/311173461)
  • Dari Activity 1.8.2: Memperbaiki tambahan yang diteruskan ke ACTION_SYSTEM_FALLBACK_PICK_IMAGES Kontrak Aktivitas Pemilih Foto untuk meneruskan kunci EXTRA_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 mengimplementasikan OnUserLeaveHintProvider guna mengizinkan komponen ke callback untuk peristiwa onUserLeaveHint. (I54892)

Perubahan API

  • ComponentActivity telah ditulis ulang dalam Kotlin. (I14f31)
  • ActivityResultCaller telah ditulis ulang dalam Kotlin. (Ib02e4)
  • ActivityResultLauncher telah ditulis ulang dalam Kotlin. Sebagai bagian dari konversi tersebut, metode getContract sekarang menjadi properti Kotlin abstrak. Ini adalah perubahan yang kompatibel dengan biner, tetapi sumber akan rusak jika implementasi ActivityResultLauncher Anda ditulis dalam Kotlin. Id4615
  • PickVisualMediaRequest sekarang memiliki API level minimum yang sama, yaitu 19, dengan kontrak Activity Result PickVisualMedia. Id6e21

Pembaruan Dependensi

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 kunci EXTRA_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 dikirim ke OnBackPressedCallback yang benar bahkan setelah OnBackPressedCallback 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 gestur kembali yang dimulai, progres di seluruh gestur, dan gestur kembali yang dibatalkan selain callback handleOnBackPressed() sebelumnya saat gestur kembali dilakukan. Fitur ini juga dilengkapi dengan Composable PredictiveBackHandler untuk menangani peristiwa gestur kembali prediktif di Activity Compose. Ini menyediakan Flow objek BackEventCompat 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
    }
  }

ComponentActivity.onBackPressed() kini tidak digunakan lagi dan digantikan dengan API untuk menangani kembali. Sekarang developer harus menggunakan OnBackPressedDispatcher, bukan mengganti metode ini.

  • EdgeToEdge - ComponentActivity.enableEdgeToEdge() telah ditambahkan untuk menyiapkan layar tepi-ke-tepi dengan mudah agar kompatibel dengan versi sebelumnya.

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.

Perbaikan Dokumentasi

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 menyediakan Flow objek BackEventCompat 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
      }
    }
    

    Dependensi ini juga dilengkapi dengan peringatan waktu kompilasi melalui aturan lint untuk memastikan Flow memanggil collect(). (Id2773, b/294884345)

  • onBackPressedDispatcher di ComponentActivity kini diinisialisasi dengan lambat sehingga hanya dibuat saat diperlukan. (I0bf8e)

Perbaikan Bug

  • ComponentActivity tidak akan lagi menampilkan NPE di Android 13 saat mendapatkan callback onBackPressed() dan Aktivitas sudah menjadi DESTROYED. (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 apa pun yang dihapus selama Gestur Kembali Prediktif. (I3f90f)

Perubahan API

  • Saat meneruskan SystemBarStyle.auto ke enableEdgeToEdge API, Anda kini dapat mengganti parameter lambda detectDarkMode guna memberikan logika kustom untuk 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 versi BackEvent yang kompatibel dengan versi lama yang dipisahkan dari class BackEvent framework.
  • Perubahan yang dapat menyebabkan gangguan: Metode handleOnBackStarted dan handleOnBackProgressed dari OnBackPressedCallback kini menerima instance androidx.activity.BackEventCompat, bukan class android.window.BackEvent framework. @VisibleForTesting API yang setara di OnBackPressedDispatcher juga telah diupdate.
  • Konstruktor untuk OnBackPressedDispatcher kini menggunakan instance Consumer<Boolean> opsional yang memungkinkan pemilik dispatcher menerima callback setiap kali jumlah callback yang diaktifkan berubah dari nol menjadi bukan nol, atau sebaliknya.

Perbaikan Bug

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

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 menyiapkan tampilan tepi-ke-tepi dengan mudah dengan cara yang kompatibel dengan versi sebelumnya.

Perubahan API

  • ComponentActivity.onBackPressed() kini tidak digunakan lagi dan digantikan dengan API untuk menangani kembali. Sekarang developer harus menggunakan OnBackPressedDispatcher, bukan mengganti metode ini. (Ibce2f, b/271596918)
  • ComponentDialog dan ComponentActivity kini berisi initViewTreeOwners() API publik yang akan digunakan untuk melakukan inisialisasi semua pemilik hierarki tampilan sebelum menetapkan tampilan konten. (Ibdce0, b/261314581)

Perbaikan Bug

  • Memperbaiki masalah saat Fragment salah membatalkan validasi MenuHosts dan menyebabkan menu lain dalam Aktivitas memiliki perilaku yang tidak diharapkan. (I9404e, b/244336571)

Perubahan Lainnya

  • ActivityResultRegister kini menggunakan Kotlin Random, 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

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 callback handleOnBackPressed() 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 sebelum report 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 mengalami kebocoran saat menggunakan ComponentActivity dengan ActivityScenario. (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 dan PickMultipleVisualMedia telah diperbarui untuk memuat penggantian tambahan saat MediaStore.ACTION_PICK_IMAGES tidak tersedia, sehingga OEM dan aplikasi sistem, seperti layanan Google Play, dapat memberikan pengalaman Pemilih Foto yang konsisten di berbagai perangkat Android dan API level dengan menerapkan tindakan penggantian. Pemilih Foto akan menggunakan penggantian ini jika tersedia sebelum kembali menggunakan Intent.ACTION_OPEN_DOCUMENT, yang tetap mendukung semua perangkat API 19 dan yang lebih tinggi.
  • ComponentDialog kini mengimplementasikan SavedStateRegistryOwner dan memiliki akses ke SavedStateRegistry-nya sendiri serta menetapkan SavedStateRegistryOwner untuk ViewTree-nya. Sekarang Anda dapat menggunakan Jetpack Compose dalam ComponentDialog karena memenuhi LifecycleOwner dan SavedStateRegistryOwner yang dilampirkan ke Jendela melalui persyaratan ViewTree API.
  • IntentSenderRequest.Builder.setFlags() kini memungkinkan Anda menetapkan beberapa tanda dari Intent, 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 versi baru Aktivitas:

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 telah 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 langsung 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

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

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 lainnya yang digunakan oleh PickVisualMedia dan PickMultipleVisualMedia berkontraksi sebagai pengganti saat MediaStore.ACTION_PICK_IMAGES tidak tersedia sekarang menjadi 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 dari Intent, 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 properti activityResultRegistry, bukan mengimplementasikan fungsi getActivityResultRegistry() 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 properti onBackPressedDispatcher, bukan mengimplementasikan fungsi getOnBackPressedDispatcher sebelumnya. (Ia277d)
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest, dan OnBackPressedDispatcher 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 dan PickMultipleVisualMedia 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 gunakan isPhotoPickerAvailable(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 mengimplementasikan SavedStateRegistryOwner dan memiliki akses ke SavedStateRegistry-nya sendiri serta menetapkan SavedStateRegistryOwner untuk ViewTree-nya. Sekarang Anda dapat menggunakan Jetpack Compose dalam ComponentDialog karena memenuhi LifecycleOwner dan SavedStateRegistryOwner yang dilampirkan ke Jendela melalui persyaratan ViewTree API. (Idca17, I73468 b/261162296)

Perubahan API

  • Menambahkan composable ReportDrawn yang langsung menandai aktivitas sebagai siap memanggil reportFullyDrawn. (Ic5b14, b/259687964)

Konversi Kotlin

  • Class ActvitiyResultCallback dan OnBackPressedCallback 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 Result PickMultipleVisualMedia yang tidak diluncurkan di perangkat Android R saat menggunakan nilai default untuk maxItems. (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 untuk maxItems. (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 dan ActivityResultContracts.PickMultipleVisualMedia untuk memberikan kontrak yang kompatibel dengan versi sebelumnya yang menggunakan MediaStore.ACTION_PICK_IMAGES saat Pemilih Foto tersedia dan Intent.ACTION_OPEN_DOCUMENT saat tidak tersedia.
  • Mengintegrasikan OnBackInvokedCallback di Android 13 ke dalam OnBackPressedDispatchers yang disediakan oleh ComponentActivity dan ComponentDialog. Tindakan ini memastikan bahwa semua API yang dibuat di OnBackPressedDispatcher 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 mendaftarkan OnBackInvokedCallback dengan PRIORITY_DEFAULT, bukan PRIORITY_OVERLAY. (I3901f)
  • Class yang memperluas ComponentActivity kini akan selalu mengirim kedua callback onMultiWindowModeChanged(). (Ic4d85)
  • ActivityResultRegistry tidak akan lagi menampilkan hasil ke ActivityResultCallback saat panggilan launch menampilkan Exception apa pun dan callback didaftarkan tanpa LifecycleOwner. (Ia7ff7, b/238350794)
  • ComponentActivity kini akan mengirim panggilan menu dengan benar tanpa perlu memanggil fungsi super dalam aktivitas Anda. (Ie33c5, b/238057118)

Pembaruan Dependensi

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 menyebabkan ClassVerificationError 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 dan startIntentSenderForResult yang sudah tidak digunakan lagi di ComponentActivity dengan @NonNull karena penerusan null selalu mengakibatkan error. (Id2a25, b/231476082)

Perbaikan Bug

  • Dari Activity 1.5.1: ActivityResultRegistry tidak akan lagi menampilkan hasil ke ActivityResultCallback saat panggilan launch menampilkan Exception apa pun dan callback didaftarkan tanpa LifecycleOwner. (Ia7ff7, b/238350794)
  • Dari Activity 1.5.1: ComponentActivity kini akan mengirim panggilan menu dengan benar ke penggantian onPrepareOptionMenu(), onCreateOptionsMenu(), dan onOptionsItemSelected() tanpa perlu memanggil fungsi super. (Ie33c5, b/238057118)

Pembaruan Dependensi

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 dengan ACTION_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 dalam OnBackPressedDispatcher yang disediakan oleh ComponentDialog. Tindakan ini memastikan bahwa semua API yang dibuat di OnBackPressedDispatcher 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 dan ActivityResultContracts.PickMultipleVisualMedia untuk memberikan kontrak yang kompatibel dengan versi sebelumnya yang menggunakan MediaStore.ACTION_PICK_IMAGES saat Pemilih Foto tersedia dan Intent.ACTION_OPEN_DOCUMENT saat tidak tersedia.
  • Mengintegrasikan OnBackInvokedCallback di Dev Beta 1 Android 13 ke dalam OnBackPressedDispatcher yang disediakan oleh ComponentActivity. Tindakan ini memastikan bahwa semua API yang dibuat di OnBackPressedDispatcher 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 ke ActivityResultCallback saat panggilan launch() menampilkan Exception apa pun dan callback didaftarkan tanpa LifecycleOwner. (Ia7ff7, b/238350794)

  • ComponentActivity sekarang akan mengirim panggilan menu dengan benar ke penggantian onPrepareOptionMenu(), onCreateOptionsMenu(), dan onOptionsItemSelected() tanpa perlu memanggil fungsi super. (Ie33c5, b/238057118)

Pembaruan dependensi

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 subclass Dialog yang menyertakan OnBackPressedDispatcher yang akan dipanggil saat tombol kembali sistem ditekan ketika dialog terlihat. Yang penting, subclass ini juga menyetel ViewTreeOnBackPressedDispatcherOwner, yang memungkinkan tampilan dengan cara umum untuk mengambil dispatcher yang benar baik yang ada di ComponentActivity atau ComponentDialog.
  • Antarmuka Callback - ComponentActivity kini mengimplementasikan serangkaian antarmuka callback modular yang dapat digunakan sebagai ganti callback Activity. Antarmuka ini mencakup hal berikut: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider
  • Integrasi CreationExtras - ComponentActivity kini memiliki kemampuan untuk menyediakan ViewModelProvider.Factory stateless melalui CreationExtras Lifecycle 2.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 oleh Intent.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

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 memanggil onPanelClosed() super, yang memperbaiki masalah saat metode onContextMenuClosed 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 penggunaan CreationExtras meskipun diinisialisasi dengan SavedStateRegistryOwner. 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 fungsi by 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 antarmuka OnPictureInPictureModeChangedProvider untuk memungkinkan komponen apa pun menerima peristiwa perubahan mode picture-in-picture. (I9f567)
  • ComponentActivity kini mengimplementasikan antarmuka OnMultiWindowModeChangedProvider 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 Lifecycle 2.5.0-alpha01. (Ie7e00, b/207012584)
  • Menambahkan ComponentDialog, subclass Dialog yang menyertakan OnBackPressedDispatcher yang akan dipanggil saat tombol kembali sistem ditekan ketika dialog terlihat. Yang penting, subclass ini juga menyetel ViewTreeOnBackPressedDispatcherOwner, yang memungkinkan tampilan dengan cara umum untuk mengambil dispatcher yang benar baik yang ada di ComponentActivity atau ComponentDialog. (I8a1bc)
  • ComponentActivity kini mengimplementasikan antarmuka OnNewIntentProvider baru untuk memungkinkan komponen apa pun menerima peristiwa ini. (If1f8b)
  • ComponentActivity kini mengimplementasikan antarmuka OnConfigurationChangedProvider baru untuk memungkinkan komponen apa pun menerima peristiwa ini. (If623b)
  • ComponentActivity kini mengimplementasikan antarmuka OnTrimMemoryProvider 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 oleh Intent.ACTION_CREATE_DOCUMENT. (I2bec6)
  • OnBackPressedDispatcherOwner yang terkait dengan View sekarang dapat diambil melalui ViewTreeOnBackPressedDispatcherOwner, bukan mengandalkan transmisi Context. (I74685)

Perbaikan Bug

  • Memperbaiki error saat mengakses ViewModel untuk pertama kalinya dari callback registerForActivityResult() atau callback ke LifecycleObserver ditambahkan sebagai bagian dari init 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 antarmuka MenuHost. Tindakan ini memungkinkan komponen apa pun menambahkan item menu ke ActionBar dengan menambahkan instance MenuProvider ke aktivitas. Setiap MenuProvider dapat ditambahkan secara opsional dengan Lifecycle yang akan otomatis mengontrol visibilitas item menu tersebut berdasarkan status Lifecycle dan menangani penghapusan MenuProvider saat Lifecycle 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 ke ActivityResultCallback saat panggilan launch menampilkan Exception 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 dan ActivityResultContracts.GetMultipleContents yang kemudian menyebabkan penggunaan jenis output List<? extends Uri> saat menggunakan kode dari bahasa pemrograman Java. (If71de)
  • Konstanta publik dalam class ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult, dan ActivityResultContracts.RequestMultiplePermissions kini dapat diakses saat menggunakan Kotlin melalui objek Companion-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, dan onRequestPermissionsResult, 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 lint LaunchDuringComposition yang mencegah Anda memanggil metode launch dari ActivityResultLauncher 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 antarmuka MenuHost. Tindakan ini memungkinkan komponen apa pun menambahkan item menu ke ActionBar dengan menambahkan instance MenuProvider ke aktivitas. Setiap MenuProvider dapat ditambahkan secara opsional dengan Lifecycle yang akan otomatis mengontrol visibilitas item menu tersebut berdasarkan status Lifecycle dan menangani penghapusan MenuProvider saat Lifecycle 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 melemparkan IllegalStateException saat mencoba memanggil launch() di ActivityResultLauncher 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 ekstensi setContent untuk menghosting UI Jetpack Compose dalam aktivitas dan wrapper khusus Compose untuk berinteraksi dengan ComponentActivity API guna menangani tombol kembali sistem dan Activity Result API. Lihat dokumentasi untuk detail selengkapnya.
  • Kontrak CaptureVideo - ActivityResultContract CaptureVideo menggantikan kontrak TakeVideo 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 ekstensi trackPipAnimationHintView di Activity untuk otomatis membuat ulang PictureInPictureParams 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 gunakan rememberLauncherForActivityResult(). (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 ke ActivityResultCallback yang menunjukkan apakah video Anda berhasil disimpan ke URI yang diberikan. Ini menggantikan kontrak TakeVideo 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 fungsi unregister(). Pendaftaran dan pembatalan pendaftaran peluncur otomatis ditangani oleh rememberLauncherForActivityResult. (I2443e)

Kompatibilitas Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 hanya kompatibel dengan Compose versi 1.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 instance ActivityResultLauncher 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 menggunakan 1.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 menjadi rememberLauncherForActivityResult() untuk menunjukkan secara lebih baik bahwa ActivityResultLauncher yang ditampilkan adalah objek terkelola yang diingat atas nama Anda. Jika mencoba memanggil unregister, kini ActivityResultLauncher yang ditampilkan akan melemparkan error. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.current dan LocalActivityResultRegistryOwner.current kini menampilkan nilai nullable untuk menentukan secara lebih baik apakah nilai tersebut tersedia dalam komposisi saat ini. API yang memerlukan API tersebut, seperti BackHandler dan rememberLauncherForActivityResult(), kini masing-masing akan melemparkan error yang lebih deskriptif jika pemilik dasar tidak ditemukan. NavHost kini berfungsi meskipun OnBackPressedDispatcherOwner tidak ditemukan, sama kasusnya saat melihat pratinjau NavHost. (I7d8b4)

Perbaikan Bug

  • BackHandler kini akan menangkap penekanan kembali dengan semestinya saat Activity STOPPED, lalu STARTED lagi, dan callback lainnya ditambahkan dengan LifecycleOwner. (I71de6, b/182284739)
  • Menggunakan ekstensi metode launch() dengan ActivityResultContract kustom yang memiliki input Unit tidak akan lagi menyebabkan NullPointerException (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 menghindari ClassNotFoundException saat meluncurkan Intent dari ActivityResultContract yang sebelumnya disimpan sebagai tambahan di Intent lain. (Ieff05, b/182906230)

Update Dependensi

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 permintaan launch() yang sedang berlangsung akan menampilkan hasilnya meskipun Anda melakukan unregister(), lalu register() lagi dengan kunci yang sama. (I9ef34, b/181267562)
  • Activity Compose tidak lagi menambahkan dependensi pengujian ke classpath runtime. (Ifd8b3)
  • Memperbaiki masalah pada BackHandler ketika lambda onBack 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 fungsi provides yang dapat digunakan dengan CompositionLocalProvider, menggantikan asProvidableCompositionLocal() 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 pengecualian NoSuchMethodError: No static method setContent saat menggunakan Compose 1.0.0-alpha12. Semua pengguna Compose harus bergantung pada 1.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 khusus androidx.activity.
    • ComponentActivity.setContent telah dipindahkan dari androidx.compose.ui.platform.setContent ke androidx.activity.compose.setContent. (Icf416)

Masalah Umum

  • Menggunakan Activity Compose 1.3.0-alpha01 dan library yang bergantung padanya, seperti androidx.compose.ui:ui-test-junit4:1.0.0-alpha12, akan menghasilkan pengecualian NoSuchMethodError: 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

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() dengan ActivityResultContract kustom yang memiliki input Unit tidak akan lagi menyebabkan NullPointerException (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 menghindari ClassNotFoundException saat meluncurkan Intent dari ActivityResultContract yang sebelumnya disimpan sebagai tambahan di Intent lain. (Ieff05, b/182906230)

Update Dependensi

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 permintaan launch() yang sedang berlangsung akan menampilkan hasilnya meskipun Anda melakukan unregister(), lalu register() 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 menyediakan ActivityResultRegistry yang memungkinkan Anda menangani startActivityForResult()+onActivityResult() serta alur requestPermissions()+onRequestPermissionsResult() tanpa mengganti metode di Activity atau Fragment, memberikan peningkatan keamanan jenis melalui ActivityResultContract, dan menyediakan hook untuk menguji alur ini. Lihat Mendapatkan Hasil dari Activity terbaru.
  • ContextAware: ComponentActivity kini mengimplementasikan ContextAware sehingga Anda dapat menambahkan satu atau beberapa instance OnContextAvailableListener yang akan menerima callback sebelum Activity.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 status FragmentManager. Setiap pemroses yang ditambahkan ke subclass FragmentActivity 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 subclass AppCompatActivity akan berjalan setelah pemroses tersebut.
  • Dukungan ViewTree: ComponentActivity sekarang mendukung ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View), dan ViewTreeSavedStateRegistryOwner API yang ditambahkan di Lifecycle 2.3.0 dan SavedState 1.1.0 sehingga API tersebut menampilkan Activity sebagai LifecycleOwner, ViewModelStoreOwner, dan SavedStateRegistryOwner untuk setiap View yang ditambahkan langsung ke ComponentActivity.

  • reportFullyDrawn() backport - Metode Activity dari reportFullyDrawn() telah di-backport dalam ComponentActivity 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 mengganti reportFullyDrawn(), 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 dengan Lifecycle. (I109ea)

Kontribusi Eksternal

  • Memperbarui dokumentasi untuk launch() agar secara eksplisit menyatakan bahwa perintah ini dapat melemparkan ActivityNotFoundException. 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 sebagai register() kode permintaan, sehingga mencegah kemungkinan bilangan bulat berlebih yang disebabkan oleh peningkatan kode permintaan. (b/168779518)

  • Observer Lifecycle dihapus dengan benar saat memanggil unregister() di ActivityResultLauncher. (b/165608393)

Perubahan Perilaku

  • ActivityResultRegistry sekarang menampilkan IllegalStateException saat mencoba memanggil register() dengan LifecycleOwner yang Lifecycle-nya telah mencapai STARTED. (b/165435866)

Pembaruan Dokumentasi

  • Dokumentasi ContextAware ditautkan ke LifecycleOwner untuk menandai callback Lifecycle 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 mengimplementasikan ContextAware sehingga Anda dapat menambahkan satu atau beberapa instance OnContextAvailableListener yang akan menerima callback sebelum Activity.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 status FragmentManager. Setiap pemroses yang ditambahkan ke subclass FragmentActivity akan berjalan setelah pemroses tersebut. (I513da)
    • API ini digunakan oleh AppCompatActivity di AppCompat 1.3.0-alpha02. Setiap pemroses yang ditambahkan ke subclass AppCompatActivity akan berjalan setelah pemroses tersebut. (I513da)

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 Fragment 1.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 Result RequestPermission. (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 mengakses requestCode dan intent secara langsung. (b/157212935)
  • ActivityResultLauncher kini memungkinkan Anda mendapatkan ActivityResultContract yang digunakan untuk mendaftarkan peluncur. (b/156875743)

Perubahan API

  • Perubahan yang dapat menyebabkan gangguan: Metode invoke() pada ActivityResultRegistry telah diganti namanya menjadi onLaunch(). (b/157496491)
  • Kontrak OpenMultipleDocuments kini menampilkan daftar kosong, bukan null 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

Perubahan API

  • Kontrak TakePicture kini menampilkan boolean yang menunjukkan keberhasilan, bukan thumbnail Bitmap karena sangat jarang didukung oleh aplikasi kamera saat menulis gambar ke Uri yang disediakan. (b/154302879)
  • Ekstensi invoke() di ActivityResultLauncher telah dihapus dan diganti dengan launch() secara eksplisit untuk menunjukkan dengan lebih baik bahwa ini adalah operasi asinkron. Ekstensi Kotlin untuk launch telah ditambahkan ke paket androidx.activity.result untuk ActivityResultLauncher<Void> dan ActivityResultLauncher<Unit> yang masing-masing menghilangkan kebutuhan untuk meneruskan null atau Unit, yang mencerminkan perilaku dari ekstensi invoke() sebelumnya. (aosp/1304674, aosp/1304675)
  • Metode IntentSenderRequest.Builder untuk setFlagsMask() dan setFlagsValues() telah digabung menjadi satu metode setFlags(). (aosp/1302111)

Perbaikan Bug

  • Saat mendaftarkan ActivityResultCallback dengan LifecycleOwner, masalah ketika callback akan dipicu sebelum status mencapai STARTED telah diperbaiki. (aosp/1309744)

Perubahan Perilaku

  • ActivityResultRegistry sekarang menghasilkan kode permintaan yang dimulai dari 0xFFFF, bukan dari 0, yang mencegah tumpang-tindih saat menggunakan startActivityForResult() atau requestPermissions() 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 menjadi registerForActivityResult(), pada ComponentActivity di sini dan di Fragment 1.3.0-alpha04. (aosp/1278717)
  • Kontrak GetContents, OpenDocuments, dan RequestPermissions secara berurutan telah diganti namanya menjadi GetMultipleContents, OpenMultipleDocuments, dan RequestMultiplePermissions. (aosp/1280161)
  • ComponentActivity sekarang mengimplementasikan antarmuka ActivityResultRegisteryOwner. (aosp/1290888)
  • - startActivityForResult()/onActivityResult() dan onRequestPermissionsResult() API di ComponentActivity tidak digunakan lagi. Harap gunakan Activity Result API. (b/154751887)

Perbaikan Bug

  • Saat menggunakan kontrak GetMultipleContents dan OpenMultipleDocuments 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, dan CreateDocument pada sekumpulan kontrak yang dibuat sebelumnya yang disediakan oleh ActivityResultContracts. (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 input Uri untuk destinasi penyimpanan gambar. Kontrak sebelumnya yang tidak memerlukan input apa pun telah diganti namanya menjadi TakePicturePreview. (aosp/1262482)
  • Metode registerActivityResultCallback() pada ActivityResultRegistry telah diganti namanya menjadi register(). (aosp/1267621)
  • Metode dispose() pada ActivityResultLauncher telah diganti namanya menjadi unregister() dan unregisterResultCallback() pada ActivityResultRegistry telah dihapus. (aosp/1267621)
  • Metode createIntent() ActivityResultContact kini memerlukan Context sebagai tambahan dari input untuk memungkinkan pembuatan Intent eksplisit. (aosp/1238800)
  • ActivityResultContract kini dapat mengganti getSynchronousResult() untuk memberikan hasil tanpa memanggil startActivityForResult. Kode ini digunakan oleh kontrak RequestPermission dan RequestPermissions untuk memberikan status 'granted' dengan benar jika izin yang diminta telah diberikan. (b/151110799)
  • Kontrak Dial yang sebelumnya tersedia telah dihapus karena Intent tidak dimaksudkan untuk digunakan dengan startActivityForResult(). (aosp/1266916)
  • Banyak Activity Result API yang tidak dimaksudkan untuk diperpanjang kini menjadi final. Ini termasuk getActivityResultRegistry(), metode prepareCall(), semua metode ActivityResultRegistry kecuali invoke(), dan sejumlah kontrak default yang tidak mendukung tambahan opsional. (b/152439361)

Perbaikan Bug

  • Memperbaiki NullPointerException pada ActivityResultRegistry 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 menyediakan ActivityResultRegistry yang memungkinkan Anda menangani alur startActivityForResult()+onActivityResult() serta requestPermissions()+onRequestPermissionsResult() tanpa mengganti metode dalam Activity atau Fragment, meningkatkan keamanan jenis melalui ActivityResultContract, 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 Lifecycle 2.3.0-alpha01 sehingga API ini menampilkan Activity sebagai LifecycleOwner 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 dengan onBackPressed() yang akan menyebabkan IllegalStateException karena adanya bug di android.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 menggunakan by viewModels(), konstruktor ViewModelProvider, atau ViewModelProviders.of() dengan ComponentActivity 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 SavedState 1.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

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 menggunakan by viewModels(), konstruktor ViewModelProvider, atau ViewModelProviders.of() dengan ComponentActivity (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 Lifecycle 2.2.0-alpha02. (aosp/1007817)
  • activity-ktx menambahkan dependensi pada lifecycle-runtime-ktx; Anda tidak perlu lagi menambahkannya secara eksplisit ke dependensi Anda saat menggunakan activity-ktx atau library yang bergantung pada activity-ktx (seperti fragment-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 untuk FragmentActivity dalam Fragment 1.1.0 dan, dengan demikian, AppCompatActivity dalam AppCompat 1.1.0.
  • activity-ktx: Modul activity-ktx mencakup ekstensi properti Kotlin by viewModels untuk mengakses ViewModels. Modul ini otomatis disertakan saat Anda menyertakan fragment-ktx dari Fragment 1.1.0.
  • OnBackPressedDispatcher: Sebagai alternatif composable dari penggantian onBackPressed(), sekarang Anda dapat mendaftarkan OnBackPressedCallback dari LifecycleOwner mana pun (misalnya fragmen) untuk menangkap peristiwa tombol kembali sistem. Lambda dengan penerima versi addCallback telah ditambahkan ke activity-ktx. Lihat Menyediakan dokumentasi navigasi kembali kustom untuk detail selengkapnya.
  • Penghentian onRetainCustomNonConfigurationInstance : onRetainCustomNonConfigurationInstance() dan getLastCustomNonConfigurationInstance() API yang terkait telah dihentikan penggunaannya. Sebaiknya gunakan ViewModels untuk menyimpan status non-konfigurasi, karena menawarkan solusi composable yang sesuai untuk semua ViewModelStoreOwner yang memperjelas kepemilikan objek yang dipertahankan, serta memberikan callback onCleared() 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 dan removeOnBackPressedCallback yang sebelumnya tidak digunakan lagi dalam ComponentActivity telah dihapus. aosp/953857
  • Metode setEnabled() dan isEnabled() dari OnBackPressedCallback sekarang sudah final. b/131416833
  • Metode remove() dari OnBackPressedCallback sekarang sudah final. aosp/952720
  • OnBackPressedDispatcher sekarang memiliki konstruktor publik, sehingga Anda dapat membuat instance Anda sendiri untuk pengujian, dll. aosp/953431
  • onBackPressed() untuk ComponentActivity sekarang secara eksplisit ditandai sebagai @MainThread aosp/952721

Perbaikan bug

  • Memperbaiki ConcurrentModificationException saat memanggil remove() dari dalam metode handleOnBackPressed() dari OnBackPressedCalback yang ditambahkan dengan LifecycleOwner. 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 dan OnBackPressedDispatcher telah ditandai sebagai @MainThread. (aosp/943813)
  • Metode handleOnBackPressed() tidak lagi menampilkan boolean. Sebagai gantinya, OnBackPressedCallback sekarang merupakan class abstrak yang dapat diaktifkan atau dinonaktifkan - handleOnBackPressed() hanya akan dipanggil saat metode isEnabled() baru menampilkan true. Dalam hal ini, Anda harus menangani tombol kembali. (aosp/944518)
  • Metode addCallback OnBackPressedDispatcher tidak lagi menampilkan instance Cancellable. OnBackPressedCallback sekarang berisi metode remove() yang memenuhi fungsionalitas ini, yang memungkinkan Anda memanggil remove() selama handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • activity-ktx sekarang berisi callback yang dibatasi penerima untuk addCallback yang menerima lambda yang mengimplementasikan handleOnBackPressed() serta memiliki akses ke isEnabled dan remove() (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 dengan OnBackPressedDispatcher baru, yang dapat diambil melalui getOnBackPressedDispatcher(). (aosp/922523)
  • Metode untuk menambahkan OnBackPressedCallback baru ke OnBackPressedDispatcher sekarang menampilkan objek Cancellable, yang memungkinkan penghapusan callback tanpa memerlukan referensi eksplisit ke OnBackPressedDispatcher. (aosp/922523)
  • Penambahan OnBackPressedCallback dengan LifecycleOwner yang terkait kini menghasilkan penambahan OnBackPressedCallback 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 mana yang harus di-inflate sebagai alternatif penggunaan setContentView(). (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 modul activity-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 dijadikan final 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 melalui addOnBackPressedCallback untuk menerima callback onBackPressed() tanpa perlu mengganti metode dalam aktivitas Anda.
  • Menambahkan delegasi properti Kotlin by viewModels() baru untuk mengambil ViewModel dari ComponentActivity.
  • Peristiwa input yang tertunda (seperti klik) sekarang dibatalkan di onStop().

Perubahan API

  • Implementasi LifecycleOwner dan ViewModelStoreOwner telah dialihkan dari FragmentActivity ke ComponentActivity.
  • onRetainCustomNonConfigurationInstance tidak digunakan lagi. Gunakan ViewModel untuk menyimpan objek yang perlu dipertahankan meskipun konfigurasi diubah.