Activity
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 7 月 24 日 | 1.9.1 | - | - | 1.10.0-alpha01 |
宣告依附元件
如要新增 Activity 的依附元件,必須將 Google Maven 存放區新增至您的專案。詳情請參閱「Google 的 Maven 存放區」一節。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { def activity_version = "1.9.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
版本 1.10
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.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
事件進行回呼。- 在處理返回時,
OnBackPressedCallback
、BackHandler
和PredictiveBackHandler
API 現在會在呼叫onBackPressedDispatcher.onBackPressed()
時發出警告,因為這一律會中斷預測返回動畫。詳情請參閱最佳做法指南。 - 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 版包含這些修訂版本。
修正錯誤
- 修正在建立活動時呼叫
OnBackPressedDispatcher
造成 Activity1.9.0-alpha02
造成的活動啟動效能迴歸問題。(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 警告
- 在處理返回時,
OnBackPressedCallback
、BackHandler
和PredictiveBackHandler
API 現在會在呼叫onBackPressedDispatcher.onBackPressed()
時發出警告,因為這一律會中斷預測返回動畫。詳情請參閱最佳做法指南。(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 轉換
- 已用 Kotlin 重新編寫
ActivityResultRegistry
。這可確保傳遞至register
的合約中泛型的是否可為空值,正確傳遞給您的ActivityResultLauncher
。(I121f0)。 - 已用 Kotlin 重新編寫
ActivityResult
。支援解構為resultCode
和data
欄位的ActivityResult
Kotlin 擴充功能已從activity-ktx
移至activity
。(I0565a)。 ComponentActivity
和trackPipAnimationHintView
的by viewModels()
的 Kotlin 擴充功能已從activity-ktx
移至activity
。activity-ktx
構件現在完全空白。(I0a444)。
修正錯誤
enableEdgeToEdge
API 現在會在任何螢幕凹口周圍繪製。(a3644b、b/311173461)- 自活動
1.8.2
:修正傳遞至相片挑選工具活動合約ACTION_SYSTEM_FALLBACK_PICK_IMAGES
的額外內容,使其正確傳遞給其正確傳遞EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
鍵,而非搭配索引鍵"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
。如果你是原始設備製造商 (OEM),我們強烈建議你導入系統備用相片挑選工具,以支援這兩項額外功能,確保達到最大的相容性。(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 變更
- 已用 Kotlin 重新編寫
ComponentActivity
。(I14f31)。 - 已用 Kotlin 重新編寫
ActivityResultCaller
。(Ib02e4)。 - 已用 Kotlin 重新編寫
ActivityResultLauncher
。在轉換過程中,getContract
方法現在是抽象的 Kotlin 屬性。這是與二進位檔相容的變更,但如果ActivityResultLauncher
實作是以 Kotlin 編寫,來源會中斷。(Id4615)。 PickVisualMediaRequest
現在與PickVisualMedia
Activity Result 合約有相同的最低 API 級別 19(Id6e21)。
依附元件更新
- 活動現在依附於核心
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"
鍵的額外項目。如果你是原始設備製造商 (OEM),我們強烈建議你導入系統備用相片挑選工具,以支援這兩項額外功能,確保達到最大的相容性。(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()
這也附帶了PredictiveBackHandler
可組合函式,可在 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
可組合函式,以處理預測返回手勢事件。它提供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 } }
系統也會透過 Lint 規則傳送編譯時間警告,確保
Flow
呼叫collect()
。(Id2773、b/294884345)。ComponentActivity
中的onBackPressedDispatcher
現已延遲初始化,因此只會在必要時建立。(I0bf8e)。
修正錯誤
- 當 Android 13 收到
onBackPressed()
回呼,且 Activity 已確實為DESTROYED
時,ComponentActivity
就不會再顯示 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
傳遞至enableEdgeToEdge
API 時,您現在可以覆寫detectDarkMode
lambda 參數,提供用於偵測夜間模式的自訂邏輯。(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
上對等的@VisibleForTesting
API 也已更新。 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 起:- 搭配
ActivityScenario
使用ComponentActivity
時,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)
修正錯誤
- 修正問題:Fragment 無法正確撤銷 MenuHosts,並導致 Activity 中的其他選單出現非預期的行為。(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
中:活動現在依附於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 版包含以下修訂項目。
修正錯誤
- 搭配
ActivityScenario
使用ComponentActivity
時,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
無法使用時,讓原始設備製造商 (OEM) 和系統應用程式 (例如 Google Play 服務) 導入備用動作,在更多種 Android 裝置和 API 級別上提供一致的相片挑選工具體驗。如果有可用的備用選項,則相片挑選工具會在改回使用Intent.ACTION_OPEN_DOCUMENT
之前,繼續支援所有 API 19 及以上版本。 ComponentDialog
現已實作SavedStateRegistryOwner
,且可存取本身的SavedStateRegistry
,並為ViewTree
設定SavedStateRegistryOwner
。您現在可以在ComponentDialog
中使用 Jetpack Compose,因為其同時符合透過ViewTree
API 要求附加至視窗的LifecycleOwner
和SavedStateRegistryOwner
。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 版包含以下修訂項目。
依附元件更新
- 活動現在依附於
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
無法使用時的備用動作和額外項目,現在是公開常數,可為原始設備製造商 (OEM) 和系統應用程式提供 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
和PickMultipleVisualMedia
Activity 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 裝置上不會啟動PickMultipleVisualMedia
Activity 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 裝置上啟動PickMultipleVisualMedia
Activity 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
修正錯誤
- 修復了針對
PickVisualMedia
ActivityResultContract
執行 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)
修正錯誤
- 修正存取
ViewModel
時發生的當機問題 首次在容器中通訊的registerForActivityResult()
回呼或 對LifecycleObserver
的回呼,ComponentActivity
的init
。(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
隨後產生的輸出內容類型List<? extends Uri>
使用 Java 程式設計語言(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
構件現在包含LaunchDuringComposition
Lint 錯誤,會讓您無法呼叫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,該函式則用來與ComponentActivity
API 互動,以處理系統返回按鈕和 Activity Result API。詳情請參閱說明文件。 - CaptureVideo 合約 -
CaptureVideo
ActivityResultContract
會取代目前已淘汰的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 版包含此連結所列的修訂項目。
新功能
- 新的
CaptureVideo
ActivityResultContract
會傳回布林值給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 之後 擲回誤判 Lint 錯誤,指示您使用1.3.0
。(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 起修正
InvalidFragmentVersionForActivityResult
Lint 檢查中的以下問題:使用 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 版包含此連結所列的修訂項目。
修正錯誤
- 從 Activity
1.2.1
起:RequestMultiplePermissions
現在一律會對所有要求的權限傳回結果,而非只傳回先前未授予權限的結果(I50bc3、b/180884668)。 - 自 Activity
1.2.1
起:現在,即使您執行unregister()
後再次使用相同金鑰執行register()
,ActivityResultRegistry
仍可確保進行中的launch()
要求將傳回其結果 (I9ef34、b/181267562)。 - Activity Compose 不再將測試依附元件新增至執行階段類別路徑。(Ifd8b3)
- 修正了
BackHandler
的以下問題:在重組後,仍會使用先前設定的onBack
lambda (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 版包含此連結所列的修訂項目。
新功能
- 現在有一個
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 變更
BackHandler
API 可用於允許 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 版包含此連結所列的修訂項目。
修正錯誤
- 修正
InvalidFragmentVersionForActivityResult
Lint 檢查中的以下問題:使用 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)
和ViewTreeSavedStateRegistryOwner
API,以便針對任何直接新增至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 變為
STARTED
使用Lifecycle
註冊時會傳回結果。(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 以上版本時造成
ActivityResultFragmentVersionDetector
Lint 檢查中斷的問題 (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 時新增
InvalidFragmentVersionForActivityResult
Lint 檢查,以驗證您正在使用的是 Fragment1.3.0-alpha07
,避免執行階段因「要求程式碼無效」問題而停止運作,以及因使用舊版 Fragment 而導致權限要求無法運作。(b/152554847)
外部貢獻
- 修正了針對
RequestPermission
Activity 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 viewModels
Kotlin 屬性擴充功能,用於存取 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
儲存需要在設定變更後繼續留存的物件。