活動
| 最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 10 月 22 日 | 1.11.0 | - | 1.12.0-beta01 | - |
宣告依附元件
如要新增 Activity 的依附元件,必須將 Google Maven 存放區新增至您的專案。詳情請參閱「Google 的 Maven 存放區」一節。
在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:
Groovy
dependencies { def activity_version = "1.11.0" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.11.0" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
1.12 版
1.12.0-beta01 版
2025 年 10 月 22 日
發布 androidx.activity:activity:1.12.0-beta01、androidx.activity:activity-compose:1.12.0-beta01 和 androidx.activity:activity-ktx:1.12.0-beta01。1.12.0-beta01 版包含這些修訂項目。
API 變更
- 推出實驗性
ActivityFlagsAPI,用於管理執行階段行為變更和遷移作業。第一個標記可讓OnBackPressedCallback穩定排序,讓生命週期變更時的回上一頁導覽更具可預測性。開發人員可以設定ActivityFlags.isOnBackPressedLifecycleOrderMaintained = false來選擇停用。(I06bdf、Id08bb、I439aa、b/422730945、b/450533622)
依附元件更新
- 將生命週期依附元件更新至 2.9.4 (Ic9fb2)
1.12.0-alpha09 版
2025 年 9 月 24 日
發布 androidx.activity:activity:1.12.0-alpha09、androidx.activity:activity-compose:1.12.0-alpha09 和 androidx.activity:activity-ktx:1.12.0-alpha09。1.12.0-alpha09 版包含這些修訂項目。
依附元件變更
- Activity 現在依附於 Navigation Event 1.0.0-alpha08。
1.12.0-alpha08 版
2025 年 9 月 10 日
發布 androidx.activity:activity:1.12.0-alpha08、androidx.activity:activity-compose:1.12.0-alpha08 和 androidx.activity:activity-ktx:1.12.0-alpha08。1.12.0-alpha08 版包含這些修訂項目。
依附元件更新
- Activity 現在依附於 Navigation Event 1.0.0-alpha08。
1.12.0-alpha07 版
2025 年 8 月 27 日
發布 androidx.activity:activity:1.12.0-alpha07、androidx.activity:activity-compose:1.12.0-alpha07 和 androidx.activity:activity-ktx:1.12.0-alpha07。1.12.0-alpha07 版包含這些修訂項目。
修正錯誤
- 修正 API 35 的
EdgeToEdge問題,避免隱藏檢視區塊導致非預期的測量插邊。(If49ff)
依附元件更新
- Activity 現在依附於 Navigation Event
1.0.0-alpha07。
1.12.0-alpha06 版
2025 年 8 月 13 日
發布 androidx.activity:activity:1.12.0-alpha06、androidx.activity:activity-compose:1.12.0-alpha06 和 androidx.activity:activity-ktx:1.12.0-alpha06。1.12.0-alpha06 版包含這些修訂項目。
MinSdk 更新
- AndroidX 的預設
minSdk已從 API 21 移至 API 23 (Ibdfca、b/380448311、b/435705964、b/435705223)
說明文件更新
- 更新
PredictiveBackHandler的 KDocs,指出已知時間問題,即可能在停用手勢的同一影格中處理手勢。(I5be5c、b/431534103) - 更新
BackHandler和PredictiveBackHandler的 KDocs,除了建議使用enabled標記進行無條件組合外,也明確說明「最後組合者勝出」的行為。(I7ab94)
依附元件更新
- Activity 現在依附於 Navigation Event
1.0.0-alpha06。
1.12.0-alpha05 版
2025 年 7 月 30 日
發布 androidx.activity:activity:1.12.0-alpha05、androidx.activity:activity-compose:1.12.0-alpha05 和 androidx.activity:activity-ktx:1.12.0-alpha05。1.12.0-alpha05 版包含這些修訂項目。
依附元件更新
- Activity 現在依附於 Navigation Event
1.0.0-alpha05。
1.12.0-alpha04 版
2025 年 7 月 2 日
發布 androidx.activity:activity:1.12.0-alpha04、androidx.activity:activity-compose:1.12.0-alpha04 和 androidx.activity:activity-ktx:1.12.0-alpha04。1.12.0-alpha04 版包含這些修訂項目。
依附元件變更
- Activity 現在依附於 NavigationEvent Alpha04
1.12.0-alpha03 版
2025 年 6 月 18 日
發布 androidx.activity:activity:1.12.0-alpha03、androidx.activity:activity-compose:1.12.0-alpha03 和 androidx.activity:activity-ktx:1.12.0-alpha03。1.12.0-alpha03 版包含這些修訂項目。
修正錯誤
OnBackPressedDispatcher和NavigationEventDispatcher現在都會在ComponentActivity中延遲初始化。(I710e6)修正
OnBackPressedDistpatcher的問題,避免發生下列情況:- 只有最新的調度器
OnBackPressedCallback會新增至啟用狀態的通知對象 (b/418715930) - 使用採用生命週期的
addCallback函式時,OnBackPressedDispatcher會移除錯誤的回呼。(b/422714753) OnBackPressedDispatcher.remove()不會移除所有已註冊的OnBackPressedCallback執行個體。(b/423024414)
- 只有最新的調度器
1.12.0-alpha02 版
2025 年 6 月 4 日
發布 androidx.activity:activity:1.12.0-alpha02、androidx.activity:activity-compose:1.12.0-alpha02 和 androidx.activity:activity-ktx:1.12.0-alpha02。1.12.0-alpha02 版包含這些修訂項目。
修正錯誤
- 在 NavigationEvent
1.0.0-alpha02中:修正因同時修改可關閉項目的內部清單,而可能在呼叫NavigationEventCallback.remove()時發生的ConcurrentModificationException。(I63066)
1.12.0-alpha01 版
2025 年 5 月 20 日
發布 androidx.activity:activity:1.12.0-alpha01、androidx.activity:activity-compose:1.12.0-alpha01 和 androidx.activity:activity-ktx:1.12.0-alpha01。1.12.0-alpha01 版包含這些修訂項目。
新功能
ComponentActivity和ComponentDialog已透過NavigationEventDispatcherOwnerAPI 與 NavigationEvent1.0.0-alpha01整合。您現在可以透過navigationEventDispatcher欄位,從ComponentActivity擷取NavigationEventDispatcher。由於OnBackPressedDispatcher是以新程式庫為基礎重新編寫,因此先前的所有用法都應能繼續正常運作。往後請使用NavigationEventDispatcher和NavigationEventCallback。(Ib8eed、I6cc44、Ib7724、I9a0f7、b/412597031、b/415028038、b/412596729、b/412597140、b/412596012)
1.11 版
1.11.0 版
2025 年 9 月 10 日
發布 androidx.activity:activity:1.11.0、androidx.activity:activity-compose:1.11.0 和 androidx.activity:activity-ktx:1.11.0。1.11.0 版包含這些修訂項目。
自 1.10.0 版以來的重要變更:
- 在
PickVisualMediaRequest中新增MediaCapabilitiesAPI,讓應用程式指定媒體功能,例如支援的 HDR 類型。 - Activity 現在會使用 API 36 編譯。
1.11.0-rc01 版
2025 年 4 月 23 日
發布 androidx.activity:activity:1.11.0-rc01、androidx.activity:activity-compose:1.11.0-rc01 和 androidx.activity:activity-ktx:1.11.0-rc01。1.11.0-rc01 版包含這些修訂項目。
1.11.0-beta01 版
2025 年 4 月 9 日
發布 androidx.activity:activity:1.11.0-beta01、androidx.activity:activity-compose:1.11.0-beta01 和 androidx.activity:activity-ktx:1.11.0-beta01。1.11.0-beta01 版包含這些修訂項目。
1.11.0-alpha02 版
2025 年 3 月 26 日
發布 androidx.activity:activity:1.11.0-alpha02、androidx.activity:activity-compose:1.11.0-alpha02 和 androidx.activity:activity-ktx:1.11.0-alpha02。1.11.0-alpha02 版包含這些修訂項目。
API 變更
- 將 Android 16 Beta03 中的新
EDGE_NONE和frameTimeMillis整合至OnBackPressedCallback的handleOnBackStarted和handleOnBackProgressed函式提供的BackEventCompat。
依附元件更新
- Activity 現在會使用 API 36 編譯。(I510e8、b/301910674)
1.11.0-alpha01 版
2025 年 3 月 12 日
發布 androidx.activity:activity:1.11.0-alpha01、androidx.activity:activity-compose:1.11.0-alpha01 和 androidx.activity:activity-ktx:1.11.0-alpha01。1.11.0-alpha01 版包含這些修訂項目。
新功能
- 在
PickVisualMediaRequest中新增MediaCapabilitiesAPI,讓應用程式指定媒體功能,例如支援的 HDR 類型。(Ic3ee7)
1.10 版
1.10.1 版本
2025 年 2 月 26 日
發布 androidx.activity:activity:1.10.1、androidx.activity:activity-compose:1.10.1 和 androidx.activity:activity-ktx:1.10.1。1.10.1 版包含這些修訂項目。
修正錯誤
- 現在可以透過檢視區塊的不相交父項 (例如
ViewOverlay) 解決ViewTreeOnBackPressedDispatcherOwners和FullyDrawnReporterOwners。如要進一步瞭解不連續檢視區塊父項,請參閱核心版本的版本資訊或ViewTree.setViewTreeDisjointParent中的說明文件。(Ie7750)
1.10.0 版本
2025 年 1 月 15 日
發布 androidx.activity:activity:1.10.0、androidx.activity:activity-compose:1.10.0 和 androidx.activity:activity-ktx:1.10.0。1.10.0 版包含這些修訂項目。
自 1.9.0 版以來的重要變更
PhotoPicker現在可依序挑選圖片,並選擇要先顯示哪個分頁 (相簿或圖片)。- 如果系統相片挑選工具無法使用,觸發相片挑選工具的
PickVisualMedia和PickMultipleVisualMediaActivity Result 合約就不會再直接委派給 Google Play 服務,而是使用公開的ACTION_SYSTEM_FALLBACK_PICK_IMAGES動作和相關額外項目,為原始設備製造商和系統應用程式提供一致的相片挑選工具體驗做為備用方案。 - 新的
LocalActivity組合本機值,可為目前範圍提供Activity,開發人員不必再從LocalContext取得Activity。
1.10.0-rc01 版
2024 年 12 月 11 日
發布 androidx.activity:activity:1.10.0-rc01、androidx.activity:activity-compose:1.10.0-rc01 和 androidx.activity:activity-ktx:1.10.0-rc01。1.10.0-rc01 版包含這些修訂項目。
修正錯誤
- 修正問題:如果
PredictiveBackHandler目前處於啟用狀態,變更啟用狀態會立即短路回呼。現在無論啟用狀態是否變更,系統都會完成目前的來電。(Ib8719)
1.10.0-beta01 版
2024 年 11 月 13 日
發布 androidx.activity:activity:1.10.0-beta01、androidx.activity:activity-compose:1.10.0-beta01 和 androidx.activity:activity-ktx:1.10.0-beta01,且自上一個 Alpha 版以來皆無異動。1.10.0-beta01 版包含這些修訂項目。
1.10.0-alpha03 版
2024 年 10 月 30 日
發布 androidx.activity:activity:1.10.0-alpha03、androidx.activity:activity-compose:1.10.0-alpha03 和 androidx.activity:activity-ktx:1.10.0-alpha03。1.10.0-alpha03 版包含這些修訂項目。
API 變更
- 新增
LocalActivity本機組合,為目前範圍提供Activity,開發人員不必再從LocalContext取得Activity。此外,這個版本還提供新的 Lint 規則,可檢查LocalContext是否錯誤地轉換為Activity。(I7746a、b/283009666)
修正錯誤
- 自 Activity
1.9.3起:處理常式停用後,PredictiveBackHandler不會再觸發回呼。這項修正可解決 Navigation Compose 的NavHost擲回IndexOutOfBoundsException的問題。(I3f75e、b/365027664、b/340202286)
依附元件更新
- Activity Compose 現在依附於 Compose Runtime 1.7.0 (I7746a、b/283009666)
1.10.0-alpha02 版
2024 年 9 月 4 日
發布 androidx.activity:activity:1.10.0-alpha02、androidx.activity:activity-compose:1.10.0-alpha02 和 androidx.activity:activity-ktx:1.10.0-alpha02。1.10.0-alpha02 版包含這些修訂項目。
行為變更
- 如果系統相片挑選工具無法使用,觸發相片挑選工具的
PickVisualMedia和PickMultipleVisualMediaActivity Result 合約就不會再直接委派給 Google Play 服務,而是使用公開的ACTION_SYSTEM_FALLBACK_PICK_IMAGES動作和相關額外項目,為原始設備製造商和系統應用程式提供一致的相片挑選工具體驗做為備用方案。如果裝置搭載最新版本的 Google Play 服務,使用者體驗應該不會受到影響。(I3513d)
修正錯誤
- 移除手動列出新平台 API 存取權的步驟,因為使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,系統會透過 API 建模自動執行這項作業,而使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 時,所有建構作業都會自動執行這項作業。如果用戶端未使用 AGP,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(I9496c、b/345472586)
- 自 Activity
1.9.2起修正以下問題:Activity ComposePredictiveBackHandlerAPI 會繼續處理停用畫面上的系統返回手勢,可能導致 Navigation Compose 等程式庫即使返回堆疊為空,也會處理返回動作,進而擲回IndexOutOfBoundsException。(Ie3301、b/340202286) - 從「活動」
1.9.1:修正PredictiveBackHandler的問題,在執行系統返回操作後,嘗試從OnBackPressedDispatcher執行onBackPressed會失敗。(I5f1f8)
1.10.0-alpha01 版
2024 年 6 月 26 日
發布 androidx.activity:activity:1.10.0-alpha01、androidx.activity:activity-compose:1.10.0-alpha01 和 androidx.activity:activity-ktx:1.10.0-alpha01。這個版本是在內部分支版本中開發而成。
新功能
- 新增支援 Android V 中推出的新
PhotoPicker功能,包括依序挑選圖片,以及選擇要先顯示哪個分頁 (相簿或圖片)。
1.9 版
1.9.3 版
2024 年 10 月 16 日
發布 androidx.activity:activity:1.9.3、androidx.activity:activity-compose:1.9.3 和 androidx.activity:activity-ktx:1.9.3。1.9.3 版包含這些修訂項目。
修正錯誤
- 處理常式停用後,
PredictiveBackHandler不會再觸發回呼。這項修正可解決 Navigation Compose 的NavHost擲回IndexOutOfBoundsException的問題。(I3f75e、b/340202286)
1.9.2 版
2024 年 9 月 4 日
發布 androidx.activity:activity:1.9.2、androidx.activity:activity-compose:1.9.2 和 androidx.activity:activity-ktx:1.9.2。1.9.2 版包含這些修訂項目。
修正錯誤
- 修正問題:Activity Compose
PredictiveBackHandlerAPI 會在停用時繼續處理系統返回手勢,可能導致 Navigation Compose 等程式庫即使返回堆疊為空,也會處理返回手勢,進而擲回IndexOutOfBoundsException。(Ie3301、b/340202286)
1.9.1 版
2024 年 7 月 24 日
發布 androidx.activity:activity:1.9.1、androidx.activity:activity-compose:1.9.1 和 androidx.activity:activity-ktx:1.9.1。1.9.1 版包含這些修訂項目。
修正錯誤
- 修正
PredictiveBackHandler的問題:在執行系統返回操作後,嘗試從OnBackPressedDispatcher執行onBackPressed會失敗。(I5f1f8)
1.9.0 版
2024 年 4 月 17 日
發布 androidx.activity:activity:1.9.0、androidx.activity:activity-compose:1.9.0 和 androidx.activity:activity-ktx:1.9.0。1.9.0 版包含這些修訂項目。
自 1.8.0 版以來的重要變更
ComponentActivity現在會實作OnUserLeaveHintProvider,讓元件回呼onUserLeaveHint事件。- 現在呼叫
onBackPressedDispatcher.onBackPressed()處理返回動作時,OnBackPressedCallback、BackHandler和PredictiveBackHandlerAPI 會發出警告,因為這類呼叫一律會中斷預測返回動畫。詳情請參閱最佳做法指南。 - 其餘 Activity API 已使用 Kotlin 重新編寫,先前在
activity-ktx中提供的所有擴充功能都已移至activity。activity-ktx現在完全空白。- 在將
ActivityResultLauncher轉換為 Kotlin 的過程中,getContract方法現在是抽象 Kotlin 屬性。這項變更與二進位檔相容,但如果ActivityResultLauncher的實作項目是以 Kotlin 編寫,則會破壞原始碼。
- 在將
1.9.0-rc01 版本
2024 年 4 月 3 日
發布 androidx.activity:activity:1.9.0-rc01、androidx.activity:activity-compose:1.9.0-rc01 和 androidx.activity:activity-ktx:1.9.0-rc01。1.9.0-rc01 版包含這些修訂項目。
依附元件更新
- Activity 現在依附於設定檔安裝程式 1.3.1。
1.9.0-beta01 版本
March 20, 2024
發布 androidx.activity:activity:1.9.0-beta01、androidx.activity:activity-compose:1.9.0-beta01 和 androidx.activity:activity-ktx:1.9.0-beta01。1.9.0-beta01 版包含這些修訂項目。
修正錯誤
- 修正了 Activity
1.9.0-alpha02中導入的 Activity 啟動效能迴歸問題,這個問題是由於在建立 Activity 時呼叫OnBackPressedDispatcher所致。(Ie75e3)
1.9.0-alpha03 版
2024 年 2 月 7 日
發布 androidx.activity:activity:1.9.0-alpha03、androidx.activity:activity-compose:1.9.0-alpha03 和 androidx.activity:activity-ktx:1.9.0-alpha03。1.9.0-alpha03 版包含以下修訂項目。
Lint 警告
- 現在呼叫
onBackPressedDispatcher.onBackPressed()處理返回動作時,OnBackPressedCallback、BackHandler和PredictiveBackHandlerAPI 會發出警告,因為這類呼叫一律會中斷預測返回動畫。詳情請參閱最佳做法指南。(1e4222、2c950d、b/287505200)
修正錯誤
- 如果系統在預測返回手勢執行期間傳送返回事件,系統會取消目前執行的預測返回手勢,並接手新的返回事件,開始新的預測返回手勢。(I3482e)
- 修正從背景執行緒首次透過
ComponentActivity存取onBackPressedDispatcher時會異常終止的問題。現在可以放心在任何執行緒上存取onBackPressedDispatcher。(I79955)
1.9.0-alpha02 版
2024 年 1 月 24 日
發布 androidx.activity:activity:1.9.0-alpha02、androidx.activity:activity-compose:1.9.0-alpha02 和 androidx.activity:activity-ktx:1.9.0-alpha02。1.9.0-alpha02 版包含以下修訂項目。
Kotlin 轉換
ActivityResultRegistry已使用 Kotlin 重新編寫。這可確保傳遞至register的合約中,一般項目的「是否可為空值」屬性會正確傳遞至傳回給您的ActivityResultLauncher。(I121f0)ActivityResult已使用 Kotlin 重新編寫。支援解構至resultCode和data欄位的ActivityResultKotlin 擴充功能已從activity-ktx移至activity。(I0565a)ComponentActivity和trackPipAnimationHintView的by viewModels()Kotlin 擴充功能已從activity-ktx移至activity。activity-ktx構件現在完全空白。(I0a444)
修正錯誤
enableEdgeToEdgeAPI 現在會繪製任何螢幕凹口的周圍。(a3644b、b/311173461)- 自 Activity
1.8.2起修正以下問題:傳遞至相片挑選工具活動合約ACTION_SYSTEM_FALLBACK_PICK_IMAGES的額外項目,會正確傳遞EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX鍵,而不是使用具有"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"鍵的額外項目。如果您是實作系統備援相片挑選工具的原始設備製造商,強烈建議您同時支援這兩項額外功能,確保相容性最高。(I96a00)
1.9.0-alpha01 版
2023 年 11 月 29 日
發布 androidx.activity:activity:1.9.0-alpha01、androidx.activity:activity-compose:1.9.0-alpha01 和 androidx.activity:activity-ktx:1.9.0-alpha01。1.9.0-alpha01 版包含以下修訂項目。
新功能
ComponentActivity現在會實作OnUserLeaveHintProvider,讓元件回呼onUserLeaveHint事件。(I54892)
API 變更
ComponentActivity已使用 Kotlin 重新編寫。(I14f31)ActivityResultCaller已使用 Kotlin 重新編寫。(Ib02e4)ActivityResultLauncher已使用 Kotlin 重新編寫。在轉換過程中,getContract方法現在是抽象 Kotlin 屬性。這項變更與二進位檔相容,但如果ActivityResultLauncher的實作項目是以 Kotlin 編寫,則會破壞原始碼。(Id4615)PickVisualMediaRequest現在的最低 API 級別與PickVisualMediaActivity Result 合約相同,都是 19。(Id6e21)
依附元件更新
- Activity 現在依附於 Core
1.13.0-alpha01。(I14f31)
1.8 版
1.8.2 版
2023 年 12 月 13 日
發布 androidx.activity:activity:1.8.2、androidx.activity:activity-compose:1.8.2 和 androidx.activity:activity-ktx:1.8.2。1.8.2 版包含以下修訂項目。
修正錯誤
- 修正傳遞至相片挑選工具活動合約
ACTION_SYSTEM_FALLBACK_PICK_IMAGES的額外項目,以便正確傳遞EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX鍵,而不是使用具有"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"鍵的額外項目。如果您是實作系統備援相片挑選工具的原始設備製造商,強烈建議您同時支援這兩項額外功能,確保相容性最高。(I96a00)
1.8.1 版
2023 年 11 月 15 日
發布 androidx.activity:activity:1.8.1、androidx.activity:activity-compose:1.8.1 和 androidx.activity:activity-ktx:1.8.1。1.8.1 版包含此連結所列的修訂項目。
修正錯誤
- 現在即使在處理返回手勢時新增了
OnBackPressedCallback,OnBackPressedDispatcher仍會繼續派送至正確的OnBackPressedCallback。(Id0ff6)
1.8.0 版
2023 年 10 月 4 日
發布 androidx.activity:activity:1.8.0、androidx.activity:activity-compose:1.8.0 和 androidx.activity:activity-ktx:1.8.0。1.8.0 版包含以下修訂項目。
自 1.7.0 版以來的重要變更
- 預測返回 -
OnBackPressedCallback現在提供新的預測返回回呼,用於處理返回手勢的啟動動作、整個手勢的進度,以及先前在執行返回手勢時、所用handleOnBackPressed()回呼以外的取消返回手勢。此外,這個版本也提供PredictiveBackHandlerComposable,可處理 Activity Compose 中的預測返回手勢事件。這會提供 BackEventCompat 物件的 Flow,必須在您提供的暫停 lambda 中收集:
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() 現已淘汰,並改用處理返回動作的 API。開發人員現在應使用 OnBackPressedDispatcher,而非覆寫這個方法。
- EdgeToEdge -
ComponentActivity.enableEdgeToEdge()已新增,可輕鬆設定無邊框螢幕,並回溯相容。
1.8.0-rc01 版
2023 年 9 月 20 日
發布 androidx.activity:activity:1.8.0-rc01、androidx.activity:activity-compose:1.8.0-rc01 和 androidx.activity:activity-ktx:1.8.0-rc01。1.8.0-rc01 版包含以下修訂項目。
1.8.0-beta01 版
2023 年 9 月 6 日
發布 androidx.activity:activity:1.8.0-beta01、androidx.activity:activity-compose:1.8.0-beta01 和 androidx.activity:activity-ktx:1.8.0-beta01。1.8.0-beta01 版包含以下修訂項目。
說明文件改善
- 改善
BackEventCompat的說明文件。(aosp/2722254)
1.8.0-alpha07 版
2023 年 8 月 23 日
發布 androidx.activity:activity:1.8.0-alpha07、androidx.activity:activity-compose:1.8.0-alpha07 和 androidx.activity:activity-ktx:1.8.0-alpha07。1.8.0-alpha07 版包含以下修訂項目。
新功能
Activity Compose 新增了
PredictiveBackHandler可組合項,可處理預測返回手勢事件。提供Flow物件,這些物件必須在您提供的暫停 Lambda 中收集:BackEventCompatPredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }此外,系統也會透過 Lint 規則發出編譯時間警告,確保
Flow呼叫collect()。(Id2773、b/294884345)ComponentActivity中的onBackPressedDispatcher現在會延遲初始化,因此只有在需要時才會建立。(I0bf8e)
修正錯誤
- 當
ComponentActivity收到onBackPressed()回呼,且 Activity 已DESTROYED時,Android 13 不會再顯示 NPE。(Idb055、b/291869278) - 移除了實驗性
isAtLeastU()API 的用法 (Ie9117、b/289269026)
1.8.0-alpha06 版
2023 年 6 月 21 日
發布 androidx.activity:activity:1.8.0-alpha06、androidx.activity:activity-compose:1.8.0-alpha06 和 androidx.activity:activity-ktx:1.8.0-alpha06。1.8.0-alpha06 版包含以下修訂項目。
新功能
OnBackPressedDispatcher現在會正確取消在預測返回手勢期間移除的回呼。(I3f90f)
API 變更
- 將
SystemBarStyle.auto傳遞至enableEdgeToEdgeAPI 時,您現在可以覆寫detectDarkModelambda 參數,提供偵測夜間模式的自訂邏輯。(aosp/2546393、b/278263793)
1.8.0-alpha05 版
2023 年 6 月 7 日
發布 androidx.activity:activity:1.8.0-alpha05、androidx.activity:activity-compose:1.8.0-alpha05 和 androidx.activity:activity-ktx:1.8.0-alpha05。這個版本是在內部分支版本中開發而成。
API 變更
- Activity 現在提供
BackEventCompat類別,做為與架構BackEvent類別分離的BackEvent回溯相容版本。 - 破壞性變更:
OnBackPressedCallback的handleOnBackStarted和handleOnBackProgressed方法現在會接收androidx.activity.BackEventCompat執行個體,而非架構android.window.BackEvent類別。OnBackPressedDispatcher上的對等@VisibleForTestingAPI 也已更新。 OnBackPressedDispatcher的建構函式現在會採用選用的Consumer<Boolean>例項,讓調度器擁有者在已啟用回呼的數量從零變為非零,或從非零變為零時,收到回呼。
修正錯誤
- 從 Activity
1.7.2:修正在呼叫report前離開畫面時,ReportDrawn異常終止的問題。(Ic46f1、b/260506820)
1.8.0-alpha04 版
2023 年 5 月 10 日
發布 androidx.activity:activity:1.8.0-alpha04、androidx.activity:activity-compose:1.8.0-alpha04 和 androidx.activity:activity-ktx:1.8.0-alpha04。這是從內部分支版本發布的內容。
修正錯誤
- 自 Activity 1.7.1 起:- 使用
ComponentActivity和ActivityScenario時,ReportFullyDrawExecuter不會再發生ReportFullyDrawExecuter外洩問題。(Id2ff2、b/277434271)
1.8.0-alpha03 版
2023 年 4 月 12 日
發布 androidx.activity:activity:1.8.0-alpha03、androidx.activity:activity-compose:1.8.0-alpha03 和 androidx.activity:activity-ktx:1.8.0-alpha03。這是從內部分支版本發布的內容。
新功能
- 新增
ComponentActivity.setUpEdgeToEdge(),方便以回溯相容的方式設定無邊框螢幕。
API 變更
ComponentActivity.onBackPressed()現已淘汰,並改用處理返回動作的 API。開發人員現在應使用OnBackPressedDispatcher,而非覆寫這個方法。(Ibce2f、b/271596918)ComponentDialog和ComponentActivity現在包含公開 APIinitViewTreeOwners(),可用於初始化所有檢視區塊樹狀結構擁有者,然後再設定內容檢視區塊。(Ibdce0、b/261314581)
修正錯誤
- 修正片段會錯誤地使 MenuHost 失效,導致活動中的其他選單出現非預期行為的問題。(I9404e、b/244336571)
其他變更
ActivityResultRegister現在使用 KotlinRandom,而非 Java。(I4d98f、b/272096025)
1.8.0-alpha02 版
2023 年 3 月 8 日
發布 androidx.activity:activity:1.8.0-alpha02、androidx.activity:activity-compose:1.8.0-alpha02 和 androidx.activity:activity-ktx:1.8.0-alpha02。以內部分支版本為基礎。
依附元件更新
- Activity
1.7.0-rc01:Activity 現在依附於Lifecycle 2.6.0。
1.8.0-alpha01 版
2023 年 2 月 8 日
發布 androidx.activity:activity:1.8.0-alpha01、androidx.activity:activity-compose:1.8.0-alpha01 和 androidx.activity:activity-ktx:1.8.0-alpha01。此版本是以內部分支版本為基礎。
新功能
OnBackPressedCallback類別現已納入新的預測返回進度回呼,用於處理返回手勢的啟動動作、整個手勢的進度,以及先前在執行返回手勢時、所用handleOnBackPressed()回呼以外的取消返回手勢。
1.7 版
1.7.2 版
2023 年 5 月 24 日
發布 androidx.activity:activity:1.7.2、androidx.activity:activity-compose:1.7.2 和 androidx.activity:activity-ktx:1.7.2。1.7.2 版包含以下修訂項目。
修正錯誤
- 修正在呼叫
report前離開畫面時,ReportDrawn停止運作的問題。(Ic46f1、b/260506820)
1.7.1 版
2023 年 4 月 19 日
發布 androidx.activity:activity:1.7.1、androidx.activity:activity-compose:1.7.1 和 androidx.activity:activity-ktx:1.7.1。1.7.1 版包含以下修訂項目。
修正錯誤
- 使用
ComponentActivity和ActivityScenario時,ReportFullyDrawExecuter不會再發生記憶體流失問題。(Id2ff2、b/277434271)
1.7.0 版
2023 年 3 月 22 日
發布 androidx.activity:activity:1.7.0、androidx.activity:activity-compose:1.7.0 和 androidx.activity:activity-ktx:1.7.0。1.7.0 版包含以下修訂項目。
自 1.6.0 版以來的重要變更
PickVisualMedia和PickMultipleVisualMedia中的相片挑選工具活動合約已更新,新增MediaStore.ACTION_PICK_IMAGES無法使用時的備援機制,讓原始設備製造商和系統應用程式 (例如 Google Play 服務) 實作備援動作,在更多 Android 裝置和 API 級別提供一致的相片挑選工具體驗。如果這個後備選項可用,相片挑選工具就會使用這個選項,否則會改用Intent.ACTION_OPEN_DOCUMENT,繼續支援所有 API 19 以上的裝置。ComponentDialog類別現在會實作SavedStateRegistryOwner,而且可存取本身的SavedStateRegistry,並為ViewTree設定SavedStateRegistryOwner。由於ComponentDialog符合透過ViewTreeAPI 要求附加至視窗的LifecycleOwner和SavedStateRegistryOwner,因此目前可在此類別中使用 Jetpack Compose。IntentSenderRequest.Builder.setFlags()現在可讓您從Intent設定多個標記,而不只是單一標記。
Kotlin 轉換
許多 Activity 類別已轉換為 Kotlin。所有轉換的類別仍會保留與舊版的回溯相容性。對於以 Kotlin 編寫的類別,下列類別有與原始碼不相容的變更:ActivityResultRegistryOwner、OnBackPressedDispatcherOwner。
下表列出新版「活動」的來源轉換:
| 活動 1.5 | 活動 1.6 |
|---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
這些類別也已轉換為 Kotlin,但仍與來源相容:ContextAware、ContextAwareHelper、OnContextAvailableListener、IntentSenderRequest 和 OnBackPressedDispatcher
FullyDrawnReporter API
ComponentActivity 現在提供 FullyDrawnReporter 執行個體,讓多個元件可以在為互動準備就緒時回報。ComponentActivity 會等待所有元件完成,再代表您呼叫 reportFullyDrawn()。這些 API 會為您處理時間需求,不需要作為 onDraw 呼叫的一部分進行呼叫。
建議您啟用下列 API:
- 在啟動完成後為 Android 執行階段進行訊號,以確保在多頁框啟動序列期間執行的所有程式碼都已納入,並優先進行背景編譯。
- 應該將應用程式的 Macrobenchmark 和 Play Vitals 列入考量,據此評估應用程式的啟動指標是否完整繪製,以便追蹤效能。
已新增三個 Activity Compose API,方便您使用個別可組合函式中的 FullyDrawnReporter:
ReportDrawn表示可組合函式已立即準備好互動。ReportDrawnWhen述詞 (例如list.count > 0) 表示可組合元件何時可互動。ReportDrawnAfter採用暫停方法,完成後就會表示您已為互動準備就緒。
依附元件更新
- Activity 現在依附於 Lifecycle
2.6.1。(8fc31d) - Activity 現在依附於 ProfileInstaller
1.3.0。(83d3b1)
1.7.0-rc01 版
2023 年 3 月 8 日
發布 androidx.activity:activity:1.7.0-rc01、androidx.activity:activity-compose:1.7.0-rc01 和 androidx.activity:activity-ktx:1.7.0-rc01。1.7.0-rc01 版包含以下修訂項目。
依附元件更新
- Activity 現在依附於
Lifecycle 2.6.0。
1.7.0-beta02 版
2023 年 2 月 22 日
發布 androidx.activity:activity:1.7.0-beta02、androidx.activity:activity-compose:1.7.0-beta02 和 androidx.activity:activity-ktx:1.7.0-beta02。1.7.0-beta02 版包含以下修訂項目。
API 變更
PickVisualMedia和PickMultipleVisualMedia合約在MediaStore.ACTION_PICK_IMAGES無法使用時採用的動作和額外項目,現在是公開常數,可為想提供一致相片挑選工具體驗的原始設備製造商和系統應用程式,提供穩定的 API。這項備援機制仍僅限系統應用程式使用。(Icd320)
1.7.0-beta01 版
2023 年 2 月 8 日
發布 androidx.activity:activity:1.7.0-beta01、androidx.activity:activity-compose:1.7.0-beta01 和 androidx.activity:activity-ktx:1.7.0-beta01。1.7.0-beta01 版包含以下修訂項目。
新功能
IntentSenderRequest.Builder.setFlags()現在可讓您從Intent設定多個標記,而不只是單一標記。(Iac04c)
修正錯誤
PickVisualMedia的備用方案可在架構相片選擇器無法使用時派上用場,現在也會妥善限定作業程序僅處理裝置系統映像檔中安裝的應用程式。(If8ae6)
Kotlin 轉換
ActivityResultRegistryOwner現在以 Kotlin 編寫。對以 Kotlin 編寫的類別而言,這項變更具有來源不相容性,因此您現在必須覆寫activityResultRegistry屬性,而不是導入先前的getActivityResultRegistry()函式。(I0b00e)OnBackPressedDispatcherOwner現在以 Kotlin 編寫。對以 Kotlin 編寫的類別而言,這項變更具有來源不相容性,因此您現在必須覆寫onBackPressedDispatcher屬性,而不是導入先前的getOnBackPressedDispatcher函式。(Ia277d)ContextAware、ContextAwareHelper、OnContextAvailableListener、IntentSenderRequest和OnBackPressedDispatcher現在是以 Kotlin 編寫。(I1a73e、Iada92、aosp/2410754、I18ac7、b/257291701)
1.7.0-alpha04 版
2023 年 1 月 25 日
發布 androidx.activity:activity:1.7.0-alpha04、androidx.activity:activity-compose:1.7.0-alpha04 和 androidx.activity:activity-ktx:1.7.0-alpha04。1.7.0-alpha04 版包含此連結所列的修訂項目。
新功能
PickVisualMedia和PickMultipleVisualMediaActivity Result 合約現在會使用 Google Play 服務提供的相片挑選工具,而此工具會在 Android 系統提供的相片挑選工具 (例如MediaStore.ACTION_PICK_IMAGES) 無法使用時提供。僅偵測出 Android 系統提供的相片挑選工具的isPhotoPickerAvailable()API 已淘汰,建議您使用全新的isPhotoPickerAvailable(Context)API。如果上述兩種系統提供的相片挑選工具其中之一可供使用,就會傳回這個 API (I55be6)。
1.7.0-alpha03 版
2023 年 1 月 11 日
發布 androidx.activity:activity:1.7.0-alpha03、androidx.activity:activity-compose:1.7.0-alpha03 和 androidx.activity:activity-ktx:1.7.0-alpha03。1.7.0-alpha03 版包含此連結所列的修訂項目。
新功能
ComponentDialog類別現在會實作SavedStateRegistryOwner,而且可存取本身的SavedStateRegistry,並為 ViewTree 設定SavedStateRegistryOwner。由於ComponentDialog符合透過 ViewTree API 要求附加至視窗的LifecycleOwner和SavedStateRegistryOwner,因此目前可在此類別中使用 Jetpack Compose (Idca17、I73468、b/261162296)。
API 變更
- 新增
ReportDrawn可組合項,這會立即將活動標示為準備好呼叫reportFullyDrawn(Ic5b14、b/259687964)。
Kotlin 轉換
ActvitiyResultCallback和OnBackPressedCallback類別皆已轉換為 Kotlin,同時保持來源和二進位檔相容性 (Ifc5e5、Ide1b0、b/257291701)。
1.7.0-alpha02 版
2022 年 10 月 24 日
發布了 androidx.activity:activity:1.7.0-alpha02、androidx.activity:activity-compose:1.7.0-alpha02 和 androidx.activity:activity-ktx:1.7.0-alpha02。1.7.0-alpha02 版包含此連結所列的修訂項目。
修正錯誤
- 自 Activity
1.6.1起修正以下問題:使用maxItems預設值時,Android R 裝置上不會啟動PickMultipleVisualMediaActivity Result 合約 (Ie2776、b/249182130)。
1.7.0-alpha01 版
2022 年 10 月 5 日
發布了 androidx.activity:activity:1.7.0-alpha01、androidx.activity:activity-compose:1.7.0-alpha01 和 androidx.activity:activity-ktx:1.7.0-alpha01。1.7.0-alpha01 版包含此連結所列的修訂項目。
FullyDrawnReporter API
ComponentActivity 現在提供 FullyDrawnReporter 執行個體,讓多個元件可以在為互動準備就緒時回報。ComponentActivity 會等待所有元件完成,再代表您呼叫 reportFullyDrawn()。這些 API 會為您處理時間需求,不需要作為 onDraw 呼叫的一部分進行呼叫。
建議您啟用下列 API:
- 在啟動完成後為 Android 執行階段進行訊號,以確保在多頁框啟動序列期間執行的所有程式碼都已納入,並優先進行背景編譯。
- 應該將應用程式的 Macrobenchmark 和 Play Vitals 列入考量,據此評估應用程式的啟動指標是否完整繪製,以便追蹤效能。
已新增兩個 Activity Compose API,方便您使用個別可組合函式中的 FullyDrawnReporter:
ReportDrawnWhen述詞 (例如list.count > 0) 表示可組合元件何時可互動。ReportDrawnAfter採用暫停方法,完成後就會表示您已為互動準備就緒。
1.6.1 版
1.6.1 版
2022 年 10 月 24 日
發布了 androidx.activity:activity:1.6.1、androidx.activity:activity-compose:1.6.1 和 androidx.activity:activity-ktx:1.6.1。1.6.1 版包含此連結所列的修訂項目。
修正錯誤
- 修正了以下問題:使用
maxItems的預設值時,無法在 Android R 裝置上啟動PickMultipleVisualMediaActivity Result 合約 (Ie2776、b/249182130)
1.6.0 版
1.6.0 版
2022 年 9 月 21 日
發布了 androidx.activity:activity:1.6.0、androidx.activity:activity-compose:1.6.0 和 androidx.activity:activity-ktx:1.6.0。1.6.0 版包含以下修訂項目。
自 1.5.0 版以來的重要變更
- 新增了
ActivityResultContracts.PickVisualMedia和ActivityResultContracts.PickMultipleVisualMedia,以便提供具有回溯相容性的合約,依照此合約,系統會在相片挑選工具可用時使用MediaStore.ACTION_PICK_IMAGES,而在相片挑選工具無法使用時則使用Intent.ACTION_OPEN_DOCUMENT。 - 將 Android 13 中的
OnBackInvokedCallback整合至ComponentActivity和ComponentDialog提供的OnBackPressedDispatchers。這可確保在啟用預測返回手勢時,OnBackPressedDispatcher上建立的所有 API 都能正常運作。
1.6.0-rc02 版
2022 年 9 月 7 日
發布了 androidx.activity:activity:1.6.0-rc02、androidx.activity:activity-compose:1.6.0-rc02 和 androidx.activity:activity-ktx:1.6.0-rc02。1.6.0-rc02 版包含此連結所列的修訂項目。
修正錯誤
- 註冊
OnBackInvokedCallback時,OnBackPressedDispatcher現在會使用PRIORITY_DEFAULT而不是PRIORITY_OVERLAY(I3901f)。 - 擴充
ComponentActivity的類別現在一律會分派兩個onMultiWindowModeChanged()回呼 (Ic4d85)。 - 如果
launch呼叫擲回任何Exception,且註冊的回呼沒有LifecycleOwner,ActivityResultRegistry不會再傳回結果給ActivityResultCallback(Ia7ff7、b/238350794)。 ComponentActivity現在可以正確分派選單呼叫,不必呼叫活動中的超級函式 (Ie33c5、b/238057118)
依附元件更新
Activity程式庫現在依附於 Lifecycle2.5.1(If6697)。
1.6.0-rc01 版
2022 年 8 月 24 日
發布了 androidx.activity:activity:1.6.0-rc01、androidx.activity:activity-compose:1.6.0-rc01 和 androidx.activity:activity-ktx:1.6.0-rc01。1.6.0-rc01 版包含以下修訂項目。
修正錯誤
- 使用 33 以下的 SDK 版本時,初始化
OnBackPressedDispatcher不會再造成ClassVerificationError(Ic32e1)。 - 如果類別覆寫
ComponentActivity的onPictureInPictureModeChanged()回呼,現在一律會分派回呼 (Ib7fdb)。
1.6.0-beta01 版
2022 年 8 月 10 日
發布了 androidx.activity:activity:1.6.0-beta01、androidx.activity:activity-compose:1.6.0-beta01 和 androidx.activity:activity-ktx:1.6.0-beta01。1.6.0-beta01 版包含以下修訂項目。
API 變更
- 每當傳遞
null時都會導致當機,因此以@NonNull標記ComponentActivity已淘汰的startActivityForResult和startIntentSenderForResult方法 (Id2a25、b/231476082)。
修正錯誤
- 自 Activity
1.5.1起︰當launch呼叫擲回任何Exception且註冊的回呼沒有LifecycleOwner時,ActivityResultRegistry不會再傳回結果給ActivityResultCallback(Ia7ff7、b/238350794)。 - 自 Activity
1.5.1起︰ComponentActivity現在可正確分派選單呼叫給onPrepareOptionMenu()、onCreateOptionsMenu()和onOptionsItemSelected()覆寫,而無須呼叫超級函式 (Ie33c5、b/238057118)。
依附元件更新
1.6.0-alpha05 版
2022 年 6 月 15 日
發布了 androidx.activity:activity:1.6.0-alpha05、androidx.activity:activity-compose:1.6.0-alpha05 和 androidx.activity:activity-ktx:1.6.0-alpha05。1.6.0-alpha05 版先前是以私人預先發布分支版本的形式開發,並無公開修訂項目。
API 變更
minCompileSdk目前為 33,以便配合 Tiramisu Beta 3 SDK
修正錯誤
- 修復了針對
PickVisualMediaActivityResultContract執行 SDK 擴充功能檢查時,舊版裝置會當機的問題,這樣一來,應能在執行 Android 10 或較舊版本的裝置上將其與ACTION_OPEN_DOCUMENT搭配使用。
1.6.0-alpha04 版
2022 年 5 月 18 日
發布 androidx.activity:activity:1.6.0-alpha04 和 androidx.activity:activity-ktx:1.6.0-alpha04。
修正錯誤
- 修正了以下錯誤:在
PickVisualMediaRequest中,嘗試透過建構工具或頂層 Kotlin 函式建立要求時,會導致堆疊溢位。 - 將 Android 13 開發人員 Beta 版 2 中的
OnBackInvokedCallback整合至ComponentDialog提供的OnBackPressedDispatcher。這可確保在啟用預測返回手勢時,OnBackPressedDispatcher上建立的所有 API 都能正常運作。
1.6.0-alpha03 版
2022 年 4 月 27 日
發布了 androidx.activity:activity:1.6.0-alpha03、androidx.activity:activity-compose:1.6.0-alpha03 和 androidx.activity:activity-ktx:1.6.0-alpha03。
- 注意:這個版本只會針對 Android 13 開發人員 Beta 版 1 SDK 進行編譯。
新功能
- 新增了
ActivityResultContracts.PickVisualMedia和ActivityResultContracts.PickMultipleVisualMedia,以便提供具有回溯相容性的合約,依照此合約,系統會在相片挑選工具可用時使用MediaStore.ACTION_PICK_IMAGES,而在相片挑選工具無法使用時則使用Intent.ACTION_OPEN_DOCUMENT。 - 將 Android 13 開發人員 Beta 版 1 中的
OnBackInvokedCallback整合至ComponentActivity提供的OnBackPressedDispatcher。這可確保在啟用預測返回手勢時,OnBackPressedDispatcher上建立的所有 API 都能正常運作。
1.6.0-alpha01 版
2022 年 3 月 23 日
發布了 androidx.activity:activity:1.6.0-alpha01、androidx.activity:activity-compose:1.6.0-alpha01 和 androidx.activity:activity-ktx:1.6.0-alpha01。
- 注意:這個版本只會針對 Android 13 開發人員預覽版 2 SDK 進行編譯。
新功能
- 將 Android 13 開發人員預覽版 2 中的變更內容整合至
ComponentActivity。
1.5.1 版
1.5.1 版
2022 年 7 月 27 日
發布了 androidx.activity:activity:1.5.1、androidx.activity:activity-compose:1.5.1 和 androidx.activity:activity-ktx:1.5.1。1.5.1 版包含此連結所列的修訂項目。
修正錯誤
如果
launch()呼叫擲回任何Exception,且註冊的回呼沒有LifecycleOwner,ActivityResultRegistry不會再傳回結果給ActivityResultCallback(Ia7ff7、b/238350794)。ComponentActivity現在可正確地將選單呼叫分派到onPrepareOptionMenu()、onCreateOptionsMenu()和onOptionsItemSelected()覆寫,不必呼叫超級函式 (Ie33c5、b/238057118)。
依附元件更新
Activity程式庫現在依附於 Lifecycle2.5.1(If6697)。
1.5.0 版
1.5.0 版
2022 年 6 月 29 日
發布了 androidx.activity:activity:1.5.0、androidx.activity:activity-compose:1.5.0 和 androidx.activity:activity-ktx:1.5.0。1.5.0 版包含以下修訂項目。
自 1.4.0 版以來的重要異動
- ComponentDialog -
ComponentDialog是Dialog的子類別,其中包含在對話方塊出現後按下系統返回按鈕時呼叫的OnBackPressedDispatcher。重要的是,這個子類別還設定了ViewTreeOnBackPressedDispatcherOwner,允許檢視畫面以一般方式擷取正確的調度程式,無論其存在於ComponentActivity或ComponentDialog中。 - 回呼介面 -
ComponentActivity現在可實作一組模組化回呼介面,可用於取代Activity回呼。這些介面包括:OnNewIntentProvider、OnConfigurationChangedProvider、OnTrimMemoryProvider、OnPictureInPictureModeChangedProvider、OnMultiWindowModeChangedProvider - CreationExtras 整合 -
ComponentActivity現在可透過 Lifecycle2.5.0的CreationExtras提供無狀態ViewModelProvider.Factory。
其他變更
ActivityResultContracts.CreateDocument的無參數建構函式已淘汰,取而代之的是採用具體 MIME 類型 (例如 「image/png」) 的新建構函數,如Intent.ACTION_CREATE_DOCUMENT所要求。
1.5.0-rc01 版
2022 年 5 月 11 日
發布 androidx.activity:activity:1.5.0-rc01、androidx.activity:activity-compose:1.5.0-rc01 和 androidx.activity:activity-ktx:1.5.0-rc01,且自 1.5.0-beta01 版以來皆無異動。1.5.0-rc01 版包含以下修訂項目。
1.5.0-beta01 版
2022 年 4 月 20 日
發布了 androidx.activity:activity:1.5.0-beta01、androidx.activity:activity-compose:1.5.0-beta01 和 androidx.activity:activity-ktx:1.5.0-beta01。1.5.0-beta01 版包含以下修訂項目。
依附元件更新
- Activity 現在依附於 Lifecycle
2.4.0-beta01。
1.5.0-alpha05 版
2022 年 4 月 6 日
發布了 androidx.activity:activity:1.5.0-alpha05、androidx.activity:activity-compose:1.5.0-alpha05 和 androidx.activity:activity-ktx:1.5.0-alpha05。1.5.0-alpha05 版包含以下修訂項目。
修正錯誤
ComponentActivity的onPanelClosed()現在也會呼叫超級onPanelClosed(),並修正無法呼叫onContextMenuClosed方法的問題。(Ib6f77)
1.5.0-alpha04 版
2022 年 3 月 23 日
發布了 androidx.activity:activity:1.5.0-alpha04、androidx.activity:activity-compose:1.5.0-alpha04 和 androidx.activity:activity-ktx:1.5.0-alpha04。1.5.0-alpha04 版包含此連結所列的修訂項目。
修正錯誤
SavedStateViewFactory現在支援使用CreationExtras(即使已透過SavedStateRegistryOwner初始化)。如果提供額外項目,系統將忽略初始化的引數 (I6c43b、b/224844583)。
1.5.0-alpha03 版
2022 年 2 月 23 日
發布了 androidx.activity:activity:1.5.0-alpha03、androidx.activity:activity-compose:1.5.0-alpha03 和 androidx.activity:activity-ktx:1.5.0-alpha03。1.5.0-alpha03 版包含此連結所列的修訂項目。
API 變更
- 您現在可以將
CreationExtras傳遞至 activityby viewModels()函式 (I6a3e6、b/217600303)
1.5.0-alpha02 版
2022 年 2 月 9 日
發布了 androidx.activity:activity:1.5.0-alpha02、androidx.activity:activity-compose:1.5.0-alpha02 和 androidx.activity:activity-ktx:1.5.0-alpha02。1.5.0-alpha02 版包含此連結所列的修訂項目。
新功能
ComponentActivity現在會實作OnPictureInPictureModeChangedProvider介面,讓任何元件都可接收子母畫面模式變更事件。(I9f567)ComponentActivity現在會實作OnMultiWindowModeChangedProvider介面,讓任何元件都可接收多視窗模式變更事件。(I62d91)
1.5.0-alpha01 版
2022 年 1 月 26 日
發布了 androidx.activity:activity:1.5.0-alpha01、androidx.activity:activity-compose:1.5.0-alpha01 和 androidx.activity:activity-ktx:1.5.0-alpha01。1.5.0-alpha01 版包含此連結所列的修訂項目。
新功能
ComponentActivity現已整合 ViewModel CreationExtras,後者為自 Lifecycle2.5.0-alpha01起引入的概念 (Ie7e00、b/207012584)。- 新增
ComponentDialog,這是Dialog的子類別,其中包含在對話方塊出現後按下系統返回按鈕時呼叫的OnBackPressedDispatcher。重要的是,這個子類別還設定了ViewTreeOnBackPressedDispatcherOwner,允許 View 以一般方式擷取正確的調度程式,無論其存在於ComponentActivity或ComponentDialog中。(I8a1bc) ComponentActivity現在會實作新的OnNewIntentProvider介面,讓任何元件都可接收這些事件 (If1f8b)ComponentActivity現在會實作新的OnConfigurationChangedProvider介面,讓任何元件都可接收這些事件 (If623b)ComponentActivity現在會實作新的OnTrimMemoryProvider介面,讓任何元件都可接收這些事件 (Ia9295)。
API 變更
ActivityResultContracts.CreateDocument的無參數建構函式已淘汰,取而代之的是採用具體 MIME 類型 (例如"image/png") 的新建構函式,如Intent.ACTION_CREATE_DOCUMENT所要求。(I2bec6)- 現在可以透過
ViewTreeOnBackPressedDispatcherOwner擷取與 View 關聯的OnBackPressedDispatcherOwner,而不是依賴於轉換Context。(I74685)
修正錯誤
- 修正了以下問題:首次透過
registerForActivityResult()回呼 (或對LifecycleObserver的回呼,以ComponentActivity的init部分新增) 存取ViewModel時會發生異常終止情形 (Ife83f)。
1.4.0 版
1.4.0 版
2021 年 10 月 27 日
發布了 androidx.activity:activity:1.4.0、androidx.activity:activity-compose:1.4.0 和 androidx.activity:activity-ktx:1.4.0。1.4.0 版包含以下修訂項目。
自 1.3.0 版以來的重要異動
- AndroidX
ComponentActivity現在會實作MenuHost介面。如此一來,任何元件都能向活動新增MenuProvider執行個體,藉此將選單項目新增至ActionBar。可視需要為每個MenuProvider加上Lifecycle,以便能夠根據Lifecycle狀態自動控制這些選單項目的顯示設定,以及在Lifecycle被刪除時負責移除MenuProvider。 ActivityResultContract類別已經以 Kotlin 重新編寫,確保開發人員使用 Kotlin 編寫自訂合約時,能夠對輸入和輸出類別定義正確的是否可為空值設定。ActivityResultContracts類別和其合約已經以 Kotlin 重新編寫,以確保提供了適當的是否可為空值設定。
1.4.0-rc01 版
2021 年 10 月 13 日
發布了 androidx.activity:activity:1.4.0-rc01、androidx.activity:activity-compose:1.4.0-rc01 和 androidx.activity:activity-ktx:1.4.0-rc01。1.4.0-rc01 版包含此連結所列的修訂項目。
修正錯誤
- 當
launch呼叫擲回任何Exception時,ActivityResultRegistry不會再傳回結果給ActivityResultCallback(If4f91、b/200845664)。
1.4.0-beta01 版
2021 年 9 月 29 日
發布了 androidx.activity:activity:1.4.0-beta01、androidx.activity:activity-compose:1.4.0-beta01 和 androidx.activity:activity-ktx:1.4.0-beta01。1.4.0-beta01 版本包含這些修訂版本。
API 變更
- 修正了
ActivityResultContracts.OpenMultipleDocuments和ActivityResultContracts.GetMultipleContents的類型,這項問題會在使用透過 Java 程式設計語言編寫的程式碼時,導致使用List<? extends Uri>的輸出類型 (If71de)。 - 現在,在透過
ActivityResultContracts.StartActivityForResult、ActivityResultContracts.StartIntentSenderForResult以及ActivityResultContracts.RequestMultiplePermissions類別中現在公開的Companion物件使用 Kotlin 時,可以存取其中的常數 (aosp/1832555)
說明文件更新
- API 的淘汰訊息現在已由 Activity Result API (即
startActivityForResult、startIntentSenderForResult、onActivityResult、requestPermissions和onRequestPermissionsResult) 處理,並已加以擴充以提供更多詳細資料。(cce80f)
1.4.0-alpha02 版
2021 年 9 月 15 日
發布了 androidx.activity:activity:1.4.0-alpha02、androidx.activity:activity-compose:1.4.0-alpha02 和 androidx.activity:activity-ktx:1.4.0-alpha02。1.4.0-alpha02 版包含此連結所列的修訂項目。
新功能
activity-compose構件現在包含LaunchDuringCompositionLint 錯誤,會讓您無法呼叫ActivityResultLauncher的launch方法以將其加入組成,這是因為組成不應有副作用。請使用 API 處理副作用 (7c2bbe、b/191347220)。
API 變更
ActivityResultContract類別已經以 Kotlin 重新編寫,確保開發人員使用 Kotlin 編寫自訂合約時,能夠對輸入和輸出類別定義正確的是否可為空值設定 (I8a8f5)ActivityResultContracts類別和其合約已經以 Kotlin 重新編寫,以確保提供了適當的是否可為空值設定 (I69802)
1.4.0-alpha01 版
2021 年 9 月 1 日
發布了 androidx.activity:activity:1.4.0-alpha01、androidx.activity:activity-compose:1.4.0-alpha01 和 androidx.activity:activity-ktx:1.4.0-alpha01。1.4.0-alpha01 版包含以下修訂版本。
新功能
- AndroidX
ComponentActivity現在會實作MenuHost介面。如此一來,任何元件都能向活動新增MenuProvider執行個體,藉此將選單項目新增至ActionBar。可視需要為每個MenuProvider加上Lifecycle,以便能夠根據Lifecycle狀態自動控制這些選單項目的顯示設定,以及在Lifecycle被刪除時負責移除MenuProvider(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)
}
行為變更
- 在嘗試對尚未註冊或已取消註冊的
ActivityResultLauncher呼叫launch()時,ActivityResultRegistry現在會擲回IllegalStateException(Ida75d、b/192567522)
外部貢獻
1.3.1 版
1.3.1 版
2021 年 8 月 4 日
發布了 androidx.activity:activity:1.3.1、androidx.activity:activity-compose:1.3.1 和 androidx.activity:activity-ktx:1.3.1。1.3.1 版包含此連結所列的修訂項目。
依附元件更新
- Activity 現在依附於 Kotlin
1.5.21。 - Activity Compose 現在依附於 Compose
1.0.1。
1.3.0 版
1.3.0 版
2021 年 7 月 28 日
發布了 androidx.activity:activity:1.3.0、androidx.activity:activity-compose:1.3.0 和 androidx.activity:activity-ktx:1.3.0。1.3.0 版包含此連結所列的修訂項目。
自 1.2.0 版以來的重要異動
- Activity Compose 構件 -
activity-compose構件提供setContent擴充功能方法和 Compose 專屬包裝函式,此方法用於代管活動中的 Jetpack Compose UI,該函式則用來與ComponentActivityAPI 互動,以處理系統返回按鈕和 Activity Result API。詳情請參閱說明文件。 - CaptureVideo 合約 -
CaptureVideoActivityResultContract會取代目前已淘汰的TakeVideo合約,並傳回一個布林值,表示可在許多相機應用程式中運作。 - 子母畫面微調設定檢視畫面追蹤 -
activity-ktx的使用者現在可以在Activity上使用trackPipAnimationHintView擴充方法,以便在相對於視窗的位置變更時,以檢視的新位置自動重建PictureInPictureParams。
1.3.0-rc02 版
2021 年 7 月 14 日
發布了 androidx.activity:activity:1.3.0-rc02、androidx.activity:activity-compose:1.3.0-rc02 和 androidx.activity:activity-ktx:1.3.0-rc02。1.3.0-rc02 版包含此連結所列的修訂項目。
修正錯誤
ActivityResultRegistry回呼現在會正確儲存與還原,因此回呼不會在 savedState 中重複 (I97816、b/191893160)。
1.3.0-rc01 版
2021 年 7 月 1 日
發布 androidx.activity:activity:1.3.0-rc01、androidx.activity:activity-compose:1.3.0-rc01 和 androidx.activity:activity-ktx:1.3.0-rc01,且自 1.3.0-beta02 版以來皆無異動。1.3.0-rc01 版包含此連結所列的修訂項目。
1.3.0-beta02 版
2021 年 6 月 16 日
發布了 androidx.activity:activity:1.3.0-beta02、androidx.activity:activity-compose:1.3.0-beta02 和 androidx.activity:activity-ktx:1.3.0-beta02。1.3.0-beta02 版包含此連結所列的修訂項目。
已更新 activity-compose 以依附於 Compose 1.0.0-beta09。現在,androidx.compose.ui:ui-test-junit4 在 activity-compose 有一個編譯時間依附元件。
1.3.0-beta01 版
2021 年 6 月 2 日
發布了 androidx.activity:activity:1.3.0-beta01、androidx.activity:activity-compose:1.3.0-beta01 和 androidx.activity:activity-ktx:1.3.0-beta01。1.3.0-beta01 版包含此連結所列的修訂項目。
API 變更
- 先前淘汰的
@Composable registerForActivityResult()方法已移除,請使用rememberLauncherForActivityResult()。(Ic39d3)
1.3.0-alpha08 版
2021 年 5 月 18 日
發布了 androidx.activity:activity:1.3.0-alpha08、androidx.activity:activity-compose:1.3.0-alpha08 和 androidx.activity:activity-ktx:1.3.0-alpha08。1.3.0-alpha08 版包含此連結所列的修訂項目。
新功能
- 新的
CaptureVideoActivityResultContract會傳回布林值給ActivityResultCallback,指示影片是否成功儲存在指定的 URI。這項變更取代現已淘汰的TakeVideo合約,因為相機應用程式很少支援傳回縮圖點陣圖,因此造成結果不實用。(Ie21f2、b/185938070)。 - 新增了 API
Activity#setPipAnimationHintView,以便在每次檢視畫面移動時更新 PipParams 的來源 Rect 微調設定 (I9063d)。
API 變更
rememberLauncherForActivityResult函式現在會傳回可淘汰unregister()函式的啟動器,註冊和取消註冊啟動器將由rememberLauncherForActivityResult自動處理。(I2443e)
Compose 相容性
androidx.activity:activity-compose:1.3.0-alpha08只與1.0.0-beta07以上的 Compose 版本相容。
1.3.0-alpha07 版
2021 年 4 月 21 日
發布了 androidx.activity:activity:1.3.0-alpha07、androidx.activity:activity-compose:1.3.0-alpha07 和 androidx.activity:activity-ktx:1.3.0-alpha07。1.3.0-alpha07 版包含此連結所列的修訂項目。
修正錯誤
rememberLauncherForActivityResult現在會傳回同一個ActivityResultLauncher執行個體的穩定參照,即使合約因重組作業而有所變動也是如此 (Id2d6d)- 使用
1.3.0以上的不穩定版 Fragment 時,系統不會再擲回要求您使用1.3.0的誤判 Lint 錯誤 (aosp/1670206、b/184847092)
1.3.0-alpha06 版
2021 年 4 月 7 日
發布了 androidx.activity:activity:1.3.0-alpha06、androidx.activity:activity-compose:1.3.0-alpha06 和 androidx.activity:activity-ktx:1.3.0-alpha06。1.3.0-alpha06 版包含此連結所列的修訂項目。
API 變更
registerForActivityResult()API 已重新命名為rememberLauncherForActivityResult(),以更明確地顯示傳回的ActivityResultLauncher是系統為您儲存的受管理物件。現在,如果嘗試呼叫unregister,回傳的ActivityResultLauncher將會擲回錯誤 (I2bb6d)LocalOnBackPressedDispatcherOwner.current和LocalActivityResultRegistryOwner.current現在會傳回可為空值的值,以更準確地判斷這個值是否可用在目前組合中。現在,如果找不到底層擁有者,則需要這些 API 的 API (例如BackHandler和rememberLauncherForActivityResult()) 將會分別擲回更具有說明性的錯誤。現在,即使沒有找到OnBackPressedDispatcherOwner(例如預覽NavHost時),NavHost也可正常運作 (I7d8b4)
修正錯誤
- 現在,在發生以下事件時,
BackHandler會正確攔截按下返回按鈕的操作:Activity 先是STOPPED,然後再度變為STARTED,而其他回呼則是透過 LifecycleOwner 新增 (I71de6、b/182284739)。 - 使用
launch()方法擴充功能 (包含具有Unit輸入內容的自訂ActivityResultContract) 時,不會再造成NullPointerException(I76282、b/183837954)
1.3.0-alpha05 版
2021 年 3 月 24 日
發布了 androidx.activity:activity:1.3.0-alpha05、androidx.activity:activity-compose:1.3.0-alpha05 和 androidx.activity:activity-ktx:1.3.0-alpha05。1.3.0-alpha05 版包含此連結所列的修訂項目。
修正錯誤
- 自 Activity 1.2.2 起修正
InvalidFragmentVersionForActivityResultLint 檢查中的以下問題:使用 Fragment 1.3.1 以上版本時出現誤判狀況 (I54da1、b/182388985)。 - 從 Activity 1.2.2 起:從之前在另一個
Intent中以附加項目形式儲存的ActivityResultContract中啟動Intent時,ComponentActivity現在不會再發生ClassNotFoundException(Ieff05、b/182906230)。
依附元件更新
- 從 Activity 1.2.2 起:Activity 現在依附於 Lifecycle
2.3.1。
1.3.0-alpha04 版
2021 年 3 月 10 日
發布了 androidx.activity:activity:1.3.0-alpha04、androidx.activity:activity-compose:1.3.0-alpha04 和 androidx.activity:activity-ktx:1.3.0-alpha04。1.3.0-alpha04 版包含此連結所列的修訂項目。
修正錯誤
- 從「活動」
1.2.1起:RequestMultiplePermissions現在一律會對所有要求的權限傳回結果,而非只傳回先前未授予權限的結果 (I50bc3、b/180884668)。 - 自 Activity
1.2.1起:現在,即使您執行unregister()後再次使用相同金鑰執行register(),ActivityResultRegistry仍可確保進行中的launch()要求將傳回其結果 (I9ef34、b/181267562)。 - Activity Compose 不再將測試依附元件新增至執行階段類別路徑。(Ifd8b3)
- 修正了
BackHandler的以下問題:在重組後,仍會使用先前設定的onBacklambda (8eb5eb)
1.3.0-alpha03 版
2021 年 2 月 24 日
發布了 androidx.activity:activity:1.3.0-alpha03、androidx.activity:activity-compose:1.3.0-alpha03 和 androidx.activity:activity-ktx:1.3.0-alpha03。1.3.0-alpha03 版包含此連結所列的修訂項目。
新功能
- 現在可以使用 Composable
registerForActivityResult函式從可組合項中的活動取得結果 (Ia7851、b/172690553)。
API 變更
LocalOnBackPressedDispatcherOwner現在有一個可與CompositionLocalProvider搭配使用的provides函式,並取代asProvidableCompositionLocal()API (I45d24)
1.3.0-alpha02 版
2021 年 2 月 10 日
發布了 androidx.activity:activity:1.3.0-alpha02、androidx.activity:activity-compose:1.3.0-alpha02 和 androidx.activity:activity-ktx:1.3.0-alpha02。1.3.0-alpha02 版包含此連結所列的修訂項目。
修正錯誤
- 修正 Activity Compose
1.3.0-alpha01中的以下問題:使用 Compose1.0.0-alpha12時出現NoSuchMethodError: No static method setContent例外狀況。所有 Compose 使用者都應依附於1.3.0-alpha02以上版本 (b/179911234)
API 變更
BackHandlerAPI 可用於允許 Composable 攔截系統返回按鈕 (I58ed5、b/172154006)。
1.3.0-alpha01 版
2021 年 2 月 10 日
發布了 androidx.activity:activity:1.3.0-alpha01、androidx.activity:activity-compose:1.3.0-alpha01 和 androidx.activity:activity-ktx:1.3.0-alpha01。1.3.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 新的
activity-compose構件為androidx.activity專用 API 提供 Jetpack Compose 的專屬輔助程式。ComponentActivity.setContent已從androidx.compose.ui.platform.setContent移至androidx.activity.compose.setContent。(Icf416)。
已知問題
- 使用 Activity Compose
1.3.0-alpha01和依附的程式庫 (例如androidx.compose.ui:ui-test-junit4:1.0.0-alpha12) 時,會發生NoSuchMethodError: No static method setContent例外狀況 (b/179911234)
1.2.4 版
1.2.4 版
2021 年 7 月 21 日
發布 androidx.activity:activity:1.2.4 和 androidx.activity:activity-ktx:1.2.4。1.2.4 版包含此連結所列的修訂項目。
修正錯誤
- 自 Activity
1.3.0-rc02起:ActivityResultRegistry 回呼現在會正確儲存與還原,因此回呼不會在 savedState 中重複 (I97816、b/191893160)。
1.2.3 版
1.2.3 版
2021 年 5 月 5 日
發布 androidx.activity:activity:1.2.3 和 androidx.activity:activity-ktx:1.2.3。1.2.3 版包含此連結所列的修訂項目。
修正錯誤
- 使用
launch()方法擴充功能 (包含具有Unit輸入內容的自訂ActivityResultContract) 時,不會再造成NullPointerException(I76282、b/183837954) - 修正誤判的 Lint 錯誤訊息:使用較新版 Fragment 的快照、Alpha 版、Beta 版或 RC 版時,此訊息會提示您使用 Fragment
1.3.0(f4a57e、b/184847092)。
1.2.2 版
1.2.2 版
2021 年 3 月 24 日
發布 androidx.activity:activity:1.2.2 和 androidx.activity:activity-ktx:1.2.2。1.2.2 版包含此連結所列的修訂項目。
修正錯誤
- 修正
InvalidFragmentVersionForActivityResultLint 檢查中的以下問題:使用 Fragment 1.3.1 以上版本時出現誤判狀況 (I54da1、b/182388985)。 - 從之前在另一個
Intent中以附加項目形式儲存的ActivityResultContract中啟動Intent時,ComponentActivity現在不會再發生ClassNotFoundException(Ieff05、b/182906230)。
依附元件更新
- Activity 現在依附於 Lifecycle
2.3.1。
1.2.1 版
1.2.1 版
2021 年 3 月 10 日
發布 androidx.activity:activity:1.2.1 和 androidx.activity:activity-ktx:1.2.1。1.2.1 版本包含以下修訂項目。
修正錯誤
RequestMultiplePermissions現在一律會針對所有要求的權限傳回結果,而非只傳回先前未授予權限的結果 (I50bc3、b/180884668)。- 現在,即使您執行
unregister()後再次使用相同的金鑰執行register(),ActivityResultRegistry仍可確保進行中的launch()要求將傳回其結果 (I9ef34、b/181267562)。
1.2.0 版
1.2.0 版
2021 年 2 月 10 日
發布 androidx.activity:activity:1.2.0 和 androidx.activity:activity-ktx:1.2.0。1.2.0 版包含此連結所列的修訂項目。
自 1.1.0 版以來的重大異動
- Activity Result API:
ComponentActivity現在提供ActivityResultRegistry,讓您無需覆寫 Activity 或 Fragment 中的方法,即可處理startActivityForResult()+onActivityResult()以及requestPermissions()+onRequestPermissionsResult()流程、透過ActivityResultContract提升類型安全,並提供測試這些流程的掛鉤。請參閱最新的從 Activity 取得結果。
ContextAware:ComponentActivity現在實作ContextAware,可讓您新增一或多個OnContextAvailableListener例項,這些例項可在基礎Activity.onCreate()「之前」收到回呼。- 暫停的 Kotlin 擴充功能
withContextAvailable()可讓您在 Context 變為可用時執行非暫停程式碼區塊,並傳回結果。 - Fragment 1.3.0 中的
FragmentActivity會使用這個 API 來還原FragmentManager的狀態。任何新增至FragmentActivity子類別的事件監聽器都會在該事件監聽器之後執行。 - AppCompat 1.3.0-alpha02 以上版本中的
AppCompatActivity會使用這個 API。任何新增至AppCompatActivity子類別的事件監聽器都會在該事件監聽器之後執行。
- 暫停的 Kotlin 擴充功能
ViewTree支援:ComponentActivity現在支援在 Lifecycle2.3.0與 SavedState1.1.0中新增的ViewTreeLifecycleOwner.get(View)、ViewTreeViewModelStoreOwner.get(View)和ViewTreeSavedStateRegistryOwnerAPI,以便針對任何直接新增至ComponentActivity的 View 傳回 Activity 做為LifecycleOwner、ViewModelStoreOwner和SavedStateRegistryOwner。
- reportFullyDrawn() 向後移植 -
reportFullyDrawn()的Activity方法已在ComponentActivity中向後移植,以便在所有 API 級別中使用、修正 API 19 中的異常終止問題,並為所有 API 級別新增這個方法的追蹤記錄。
1.2.0-rc01 版
2020 年 12 月 16 日
發布 androidx.activity:activity:1.2.0-rc01 和 androidx.activity:activity-ktx:1.2.0-rc01。1.2.0-rc01 版包含此連結所列的修訂項目。
修正錯誤
ActivityResultRegistry現在一律會還原已儲存的確切狀態 (Idd56b)。- 新增了
ComponentActivity.reportFullyDrawn追蹤記錄 (Ic7632)
外部貢獻
ComponentActivity現在已覆寫reportFullyDrawn(),讓所有 API 級別中都能呼叫這個方法,並修復了 API 19 裝置在無適當系統權限的情況下呼叫這個方法時發生的異常終止問題。感謝 Simon Schiller!(b/163239764、#103)
1.2.0-beta02 版
2020 年 12 月 2 日
發布 androidx.activity:activity:1.2.0-beta02 和 androidx.activity:activity-ktx:1.2.0-beta02。1.2.0-beta02 版包含此連結所列的修訂項目。
修正錯誤
- 修正問題:Activity Result API 在透過
Lifecycle註冊的情況下,不會等到 Lifecycle 變為STARTED狀態後再傳送結果 (I109ea)。
外部貢獻
- 更新
launch()的說明文件,明確指出它可能會擲回ActivityNotFoundException。感謝 Michał Zieliński!(aosp/1493580)
1.2.0-beta01 版
2020 年 10 月 1 日
發布 androidx.activity:activity:1.2.0-beta01 和 androidx.activity:activity-ktx:1.2.0-beta01。1.2.0-beta01 版包含此連結所列的修訂項目。
修正錯誤
ActivityResultRegistry現在會隨機產生整數,直到發現未分配做為要求程式碼register()使用的整數為止,藉此避免因要求程式碼遞增而可能導致整數溢位 (b/168779518)在
ActivityResultLauncher上呼叫unregister()時,會正確移除Lifecycle觀察器 (b/165608393)
行為變更
- 現在,在嘗試使用
Lifecycle已達到STARTED的LifecycleOwner來呼叫register()時,ActivityResultRegistry會擲回IllegalStateException(b/165435866)
說明文件更新
ContextAware說明文件會連結至LifecycleOwner,藉此醒目顯示Lifecycle回呼,以做為建立和刪除事件的適當位置。(aosp/1414152)
1.2.0-alpha08 版
2020 年 8 月 19 日
發布 androidx.activity:activity:1.2.0-alpha08 和 androidx.activity:activity-ktx:1.2.0-alpha08。1.2.0-alpha08 版包含此連結所列的修訂項目。
新功能
ComponentActivity現在實作ContextAware,可讓您新增一或多個OnContextAvailableListener例項,這些例項可在基本Activity.onCreate()之前收到回呼 (b/161390636)- 暫停的 Kotlin 擴充功能
withContextAvailable()可讓您在 Context 可供使用時執行非暫停程式碼區塊,並傳回結果 (I8290c) - Fragment 1.3.0-alpha08 中的
FragmentActivity會使用這個 API 來還原FragmentManager的狀態。任何新增至FragmentActivity子類別的事件監聽器都會在該事件監聽器之後執行。(I513da) - AppCompat 1.3.0-alpha02 中的
AppCompatActivity會使用這個 API。任何新增至AppCompatActivity子類別的事件監聽器都會在該事件監聽器之後執行。(I513da)
- 暫停的 Kotlin 擴充功能
修正錯誤
- 修正了在使用 Lint 27.1.0 以上版本時造成
ActivityResultFragmentVersionDetectorLint 檢查中斷的問題 (b/162155191)
1.2.0-alpha07 版
2020 年 7 月 22 日
發布 androidx.activity:activity:1.2.0-alpha07 和 androidx.activity:activity-ktx:1.2.0-alpha07。1.2.0-alpha07 版包含此連結所列的修訂項目。
新功能
- 在使用 Activity Result API 時新增
InvalidFragmentVersionForActivityResultLint 檢查,以驗證您正在使用的是 Fragment1.3.0-alpha07,避免執行階段因「要求程式碼無效」問題而停止運作,以及因使用舊版 Fragment 而導致權限要求無法運作。(b/152554847)
外部貢獻
- 修正了針對
RequestPermissionActivity Result 合約剖析結果時出現的ArrayIndexOutOfBoundsException(I8f9e3、b/161057605)。
1.2.0-alpha06 版
2020 年 6 月 10 日
發布了 androidx.activity:activity:1.2.0-alpha06 和 androidx.activity:activity-ktx:1.2.0-alpha06。1.2.0-alpha06 版包含此連結所列的修訂項目。
新功能
- 您現在可以在 Kotlin 中解構
ActivityResult類別,以直接存取requestCode和intent(b/157212935) ActivityResultLauncher現在可讓您取得過去用於註冊啟動器的ActivityResultContract(b/156875743)
API 變更
- 破壞性變更:
ActivityResultRegistry中的invoke()方法已重新命名為onLaunch()(b/157496491) - 如果未傳回任何結果,
OpenMultipleDocuments合約現在會向已註冊的回呼傳回空白清單,而不是null(b/157348014)。
1.2.0-alpha05 版
2020 年 5 月 20 日
發布 androidx.activity:activity:1.2.0-alpha05 和 androidx.activity:activity-ktx:1.2.0-alpha05。1.2.0-alpha05 版包含此連結所列的修訂項目。
新功能
- 現在可在
ComponentActivity中使用View時執行 Lifecycle2.3.0-alpha03中的ViewTreeViewModelStoreOwner和 SavedState1.1.0-alpha01中的ViewTreeSavedStateRegistryOwner(aosp/1297993、aosp/1300264)
API 變更
TakePicture合約現在會傳回表示成功的boolean,而不是縮圖Bitmap,因為在將圖片寫入提供的Uri時,相機應用程式很少支援這種格式 (b/154302879)- 移除
ActivityResultLauncher中的invoke()擴充功能,以便明確使用launch()更清楚地指示這些都是非同步作業。launch的 Kotlin 擴充功能已新增至ActivityResultLauncher<Void>和ActivityResultLauncher<Unit>的androidx.activity.result套件,這樣就無需在null或Unit中分別傳送,以鏡像先前已invoke()的擴充功能的鏡像該行為。(aosp/1304674、aosp/1304675) setFlagsMask()和setFlagsValues()的IntentSenderRequest.Builder方法已合併為單一setFlags()方法 (aosp/1302111)
修正錯誤
- 透過
LifecycleOwner註冊ActivityResultCallback時,修正了在狀態達到STARTED之前會觸發回呼的問題 (aosp/1309744)
行為變更
ActivityResultRegistry現在會產生從0xFFFF(而非0) 開始的要求程式碼,避免在活動中使用startActivityForResult()或requestPermissions()時重疊 (aosp/1302324)
1.2.0-alpha04 版
2020 年 4 月 29 日
發布 androidx.activity:activity:1.2.0-alpha04 和 androidx.activity:activity-ktx:1.2.0-alpha04。1.2.0-alpha04 版本包含以下修訂項目。
新功能
- 向 ActivityResult API 新增了可以呼叫 startIntentSenderForResult 的合約。(b/153007517)
API 變更
- 在這裡的
ComponentActivity及 Fragment1.3.0-alpha04中,prepareCall()方法已重新命名為registerForActivityResult()(aosp/1278717) GetContents、OpenDocuments和RequestPermissions合約已分別重新命名為GetMultipleContents、OpenMultipleDocuments和RequestMultiplePermissions。(aosp/1280161)ComponentActivity現在會實作ActivityResultRegisteryOwner介面。(aosp/1290888)- 已淘汰
ComponentActivity上的startActivityForResult()/onActivityResult()和onRequestPermissionsResult()API。請使用 Activity Result API。(b/154751887)
修正錯誤
- 使用
GetMultipleContents和OpenMultipleDocuments合約並選取單一項目時,現在會正確地向您的回呼傳回結果 (b/152941153)
1.2.0-alpha03 版
2020 年 4 月 1 日
發布 androidx.activity:activity:1.2.0-alpha03 和 androidx.activity:activity-ktx:1.2.0-alpha03。1.2.0-alpha03 版包含此連結所列的修訂項目。
新功能
- 已將
TakeVideo、PickContact、GetContent、GetContents、OpenDocument、OpenDocuments、OpenDocumentTree和CreateDocument合約新增至ActivityResultContracts提供的預先建構合約組 (aosp/1262482、aosp/1266916、aosp/1268960) - Activity Result API 現已支援透過選用的
ActivityOptionsCompat啟動 Activity 取得結果 (b/151860054)
API 變更
TakePicture合約現在接受標記出圖片應儲存位置的Uri輸入。不接受任何輸入的舊合約已重新命名為TakePicturePreview。(aosp/1262482)ActivityResultRegistry上的registerActivityResultCallback()方法已重新命名為register()(aosp/1267621)ActivityResultLauncher上的dispose()方法已重新命名為unregister(),且ActivityResultRegistry上的unregisterResultCallback()已移除 (aosp/1267621)ActivityResultContact的createIntent()方法現在採用Context以及輸入內容以建立明確意圖。(aosp/1238800)ActivityResultContract現在可以覆寫getSynchronousResult(),無需呼叫startActivityForResult即可傳遞結果。如果已授予所要求的權限,RequestPermission和RequestPermissions合約可利用這個方法正確傳遞「已授權」狀態 (b/151110799)- 由於
Intent並非用於搭配startActivityForResult()使用,之前可用的Dial合約已移除 (aosp/1266916) - 許多不會擴充的 Activity Result API 現在都是
final。這包括getActivityResultRegistry()、prepareCall()方法、除invoke()以外的所有ActivityResultRegistry方法,以及部分不支援選用附加項目的預設合約 (b/152439361)
修正錯誤
- 修正了
ActivityResultRegistry中的NullPointerException:在嘗試將結果傳遞給設定更改後尚未重新註冊的回呼時,ActivityResultRegistry現在會保留這些待處理結果並在重新註冊回呼時傳遞 (b/152137004)
1.2.0-alpha02 版
2020 年 3 月 18 日
發布了 androidx.activity:activity:1.2.0-alpha02 和 androidx.activity:activity-ktx:1.2.0-alpha02。1.2.0-alpha02 版包含此連結所列的修訂項目。
新功能
- ActivityResultRegistry:
ComponentActivity現在提供ActivityResultRegistry,讓您無需覆寫 Activity 或 Fragment 中的方法,即可處理startActivityForResult()+onActivityResult()以及requestPermissions()+onRequestPermissionsResult()流程,透過ActivityResultContract提升類型安全,並提供測試這些流程的掛鉤。詳情請參閱最新的從 Activity 取得結果 (b/125158199)
1.2.0-alpha01 版
2020 年 3 月 4 日
發布 androidx.activity:activity:1.2.0-alpha01 和 androidx.activity:activity-ktx:1.2.0-alpha01。1.2.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 開始支援 Lifecycle
2.3.0-alpha01中新增的ViewTreeLifecycleOwner.get(View)API,以針對直接新增至 Activity 的任何檢視畫面傳回 Activity 做為LifecycleOwner(aosp/1182955)
修正錯誤
- 修正了在舊版本平台上執行時,在 Activity
1.1.0中出現的迴歸問題。在這些平台上,onBackPressed()會由於android.app.FragmentManager中的錯誤而導致IllegalStateException(b/146290338)
1.1.0 版
1.1.0 版
2020 年 1 月 22 日
發布了 androidx.activity:activity:1.1.0。1.1.0 版包含此連結所列的修訂項目。
自 1.0.0 版以來的重要異動
- Lifecycle ViewModel SavedState 整合:使用
by viewModels()、ViewModelProvider建構函式,或者將ViewModelProviders.of()與ComponentActivity或其子類別搭配使用時,SavedStateViewModelFactory現在是預設使用的工廠。
1.1.0-rc03 版
2019 年 12 月 4 日
發布 androidx.activity:activity:1.1.0-rc03 和 androidx.activity:activity-ktx:1.1.0-rc03。1.1.0-rc03 版包含此連結所列的修訂項目。
依附元件變更
- Activity 現在依附於 Lifecycle
2.2.0-rc03和 Lifecycle ViewModel SavedState1.0.0-rc03。
1.1.0-rc02 版
2019 年 11 月 7 日
發布 androidx.activity:activity:1.1.0-rc02 和 androidx.activity:activity-ktx:1.1.0-rc02。1.1.0-rc02 版包含此連結所列的修訂項目。
依附元件變更
- Activity 現在依附於 Lifecycle
2.2.0-rc02。
1.1.0-rc01 版
2019 年 10 月 23 日
發布 androidx.activity:activity:1.1.0-rc01 和 androidx.activity:activity-ktx:1.1.0-rc01,且自 1.1.0-beta01 版以來皆無異動。1.1.0-rc01 版包含以下修訂項目。
1.1.0-beta01 版
2019 年 10 月 9 日
發布 androidx.activity:activity:1.1.0-beta01 和 androidx.activity:activity-ktx:1.1.0-beta01。1.1.0-beta01 版包含此連結所列的修訂項目。
依附元件變更
- Activity 現在依附於 SavedState 1.0.0 穩定版。
1.1.0-alpha03 版
2019 年 9 月 5 日
發布 androidx.activity:activity:1.1.0-alpha03 和 androidx.activity:activity-ktx:1.1.0-alpha03。您可以前往這裡查看這個版本包含的修訂項目。
新功能
- Activity 現在依附於 Core 1.1.0 穩定版。
修正錯誤
- Activity 現在依附於 Lifecycle
2.2.0-alpha04。
1.1.0-alpha02 版
2019 年 8 月 7 日
發布 androidx.activity:activity:1.1.0-alpha02 和 androidx.activity:activity-ktx:1.1.0-alpha02。您可以前往這裡查看這個版本包含的修訂項目。
新功能
SavedStateViewModelFactory現在是使用by viewModels()、ViewModelProvider建構函式或將ViewModelProviders.of()搭配ComponentActivity使用時預設使用的工廠 (b/135716331)
1.1.0-alpha01 版
2019 年 7 月 2 日
發布 androidx.activity:activity:1.1.0-alpha01 和 androidx.activity:activity-ktx:1.1.0-alpha01。您可以前往這裡查看這個版本包含的修訂項目。
新功能
activity現在依附於 Lifecycle2.2.0-alpha02。(aosp/1007817)activity-ktx在lifecycle-runtime-ktx中新增了依附元件;在使用activity-ktx或依附於activity-ktx的程式庫 (例如fragment-ktx) 時,您不再需要明確將其加入依附元件中 (aosp/987162)。
1.0.0 版
1.0.0 版
2019 年 9 月 5 日
發布 androidx.activity:activity:1.0.0 和 androidx.activity:activity-ktx:1.0.0。您可以前往這裡查看這個版本包含的修訂項目。
1.0.0 版的主要功能
- ComponentActivity:
ComponentActivity用來當做 Fragment1.1.0中FragmentActivity的新基礎類別,並且擴展為 AppCompat1.1.0中的AppCompatActivity。 - activity-ktx:
activity-ktx模組包含by viewModelsKotlin 屬性擴充功能,用於存取 ViewModel。當您加入 Fragment1.1.0的fragment-ktx時,會自動加入這個模組。 - OnBackededDispatcher:您現在可以透過任何
LifecycleOwner(例如片段) 註冊OnBackPressedCallback以攔截系統返回按鈕事件來做為可組合替代程式碼,用來覆寫onBackPressed()。含有接收器版本addCallback的 lambda 已加入activity-ktx。詳情請參閱提供自訂的返回導覽功能說明文件。 - onRetainCustomNonConfigurationInstance 淘汰:已淘汰
onRetainCustomNonConfigurationInstance()和相關的getLastCustomNonConfigurationInstance()API。強烈建議您使用 ViewModel 儲存非設定狀態,因為這可以提供適用於任何ViewModelStoreOwner的可組合解決方案。ViewModelStoreOwner 可以明確指示對保留對象的擁有權,並提供onCleared()回呼,以在最終刪除活動時清理資源。
1.0.0-rc01 版
2019 年 7 月 2 日
發布 androidx.activity:activity:1.0.0-rc01 和 androidx.activity:activity-ktx:1.0.0-rc01,且自 1.0.0-beta01 版以來皆無異動。您可以前往這裡查看這個版本包含的修訂項目。
1.0.0-beta01 版
2019 年 6 月 5 日
發布 androidx.activity::activity:1.0.0-beta01 和 androidx.activity:activity-ktx:1.0.0-beta01,且自 1.0.0-alpha08 版以來皆無異動。您可以前往這裡查看這個版本包含的修訂項目。
1.0.0-alpha08 版
2019 年 5 月 7 日
發布 androidx.activity:activity:1.0.0-alpha08 和 androidx.activity:activity-ktx:1.0.0-alpha08。您可以前往這裡查看這個版本包含的修訂項目。
API 變更
- 破壞性變更:已移除
ComponentActivity上先前淘汰的addOnBackPressedCallback和removeOnBackPressedCallback方法 (aosp/953857)。 OnBackPressedCallback的setEnabled()和isEnabled()方法現為最終版 (b/131416833)OnBackPressedCallback的remove()方法現在為最終版 (aosp/952720)。OnBackPressedDispatcher現在有公開建構函式,您可以建構自己的測試用執行個體等等 (aosp/953431)。ComponentActivity的onBackPressed()現已明確標記為@MainThread(aosp/952721)
修正錯誤
- 修正了在透過
LifecycleOwner新增OnBackPressedCalback的handleOnBackPressed()方法中呼叫remove()時出現的ConcurrentModificationException(b/131765095)
1.0.0-alpha07 版
2019 年 4 月 25 日
發布 androidx.activity:activity:1.0.0-alpha07 和 androidx.activity:activity-ktx:1.0.0-alpha07。您可以前往這裡查看這個版本包含的修訂項目。
API 變更
在這個版本中,onBackPressed() 的處理方式有重大變更。詳情請參閱「更新的自訂返回功能說明文件」。
OnBackPressedCallback和OnBackPressedDispatcher的方法已標記為@MainThread(aosp/943813)handleOnBackPressed()方法不再傳回boolean。OnBackPressedCallback現在變成是一個可以啟用或停用的抽象類別,只有當新的isEnabled()方法傳回「是」的時候才會呼叫handleOnBackPressed()。在這種情況下,您必須處理返回按鈕。(aosp/944518)OnBackPressedDispatcher的addCallback方法不再傳回Cancellable執行個體。OnBackPressedCallback現在包含可執行此功能的remove()方法,因此您可以在handleOnBackPressed()期間呼叫remove()(aosp/944519) (aosp/946316)activity-ktx現在包含addCallback的接收器限定範圍回呼,可接受實作handleOnBackPressed()的 lamdba,且可存取isEnabled和remove()(aosp/944520)
1.0.0-alpha06 版
2019 年 4 月 3 日
發布 androidx.activity:activity:1.0.0-alpha06 和 androidx.activity:activity-ktx:1.0.0-alpha06。您可以前往這裡查看這個版本包含的修訂項目。
API 變更
- ComponentActivity 現已包含第二層建構函式,其中採用
@LayoutRes int取代將 AppCompatActivity 類別以@ContentView註解的先前行為,這個方法同時適用於應用程式和程式庫模組 (b/128352521) - 已淘汰 ComponentActivity 中的
OnBackPressedCallback相關 API,並改用新的OnBackPressedDispatcher,可透過getOnBackPressedDispatcher()擷取 (aosp/922523) - 將
OnBackPressedCallback新增至OnBackPressedDispatcher的方法現在會傳回Cancellable物件,如此可在不使用OnBackPressedDispatcher明確參照的情況下移除回呼 (aosp/922523) - 現在,在透過相關聯的
LifecycleOwner新增OnBackPressedCallback時,當生命週期開始和停止時,將會分別導致新增和移除OnBackPressedCallback。(aosp/922523)
1.0.0-alpha05 版
2019 年 3 月 13 日
發布 androidx.activity:activity:1.0.0-alpha05 和 androidx.activity:activity-ktx:1.0.0-alpha05。如要查看這個版本包含的修訂項目完整清單,請參閱這裡。
新功能
- 已對
@ContentView註解查詢加入快取處理。(b/123709449)
1.0.0-alpha04 版
2019 年 1 月 30 日
發布 androidx.activity:activity 1.0.0-alpha04 和 androidx.activity:activity-ktx 1.0.0-alpha04。
新功能
- 現在支援
@ContentView類別註解,可讓您指示應加載哪個版面配置 XML 檔案以代替使用setContentView()(aosp/837619)。
API 變更
- 新增了附註,說明不應覆寫
getViewModelStore(),並且在日後發布的版本中成為定案。如果您目前正在覆寫這個方法,請提交功能要求。(aosp/837619)
修正錯誤
activity模組現在依附於 ViewModel 2.1.0-alpha02 版,以與activity-ktx模組的依附元件保持一致。
1.0.0-alpha03 版
2018 年 12 月 17 日
發布了 androidx.activity 1.0.0-alpha03。
新功能
- ComponentActivity 現在會實作
BundleSavedStateRegistryOwner,並依附於 SavedState 程式庫新版本 [aosp/815133] - ComponentActivity 目前處理 Android 架構問題,該問題會導致 InputMethodManager 洩漏上次聚焦的檢視畫面 [b/37122102]
1.0.0-alpha02 版
2018 年 12 月 3 日
API 變更
- 新增附註,說明不應覆寫
getLifecycle(),並會在日後發布的版本中將其設為final。如果您目前正在覆寫這個方法,請提交功能要求 (aosp/815834)
1.0.0-alpha01 版
2018 年 11 月 5 日
androidx.activity 1.0.0-alpha01 導入 ComponentActivity,這是現有 FragmentActivity 和 AppCompatActivity 的新基礎類別。
新功能
- 您現在無需覆寫活動中的方法,即可透過
addOnBackPressedCallback註冊OnBackPressedCallback以接收onBackPressed()回呼。 - 新增
by viewModels()Kotlin 屬性委派項目,以從ComponentActivity擷取ViewModel。 onStop()中的待處理輸入事件 (例如點擊) 現在已取消。
API 變更
LifecycleOwner和ViewModelStoreOwner的實作已從FragmentActivity移至ComponentActivity。- 淘汰了
onRetainCustomNonConfigurationInstance。請使用ViewModel儲存需要在設定變更後繼續留存的物件。