Hoạt động
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 24 tháng 7 năm 2024 | 1.9.1 | - | - | 1.10.0-alpha01 |
Khai báo phần phụ thuộc
Để thêm phần phụ thuộc trên Hoạt động, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.10
Phiên bản 1.10.0-alpha01
Ngày 26 tháng 6 năm 2024
Phát hành androidx.activity:activity:1.10.0-alpha01
, androidx.activity:activity-compose:1.10.0-alpha01
và androidx.activity:activity-ktx:1.10.0-alpha01
. Phiên bản này được phát triển trong một nhánh nội bộ.
Tính năng mới
- Hỗ trợ thêm các tính năng mới của
PhotoPicker
ra mắt trong Android V, bao gồm cả khả năng chọn hình ảnh theo thứ tự và chọn thẻ (album hoặc ảnh) nào sẽ hiển thị ban đầu.
Phiên bản 1.9
Phiên bản 1.9.1
Ngày 24 tháng 7 năm 2024
Phát hành androidx.activity:activity:1.9.1
, androidx.activity:activity-compose:1.9.1
và androidx.activity:activity-ktx:1.9.1
. Phiên bản 1.9.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề với
PredictiveBackHandler
, trong đó sau khi hệ thống quay lại, việc cố gắng thực hiệnonBackPressed
từOnBackPressedDispatcher
sẽ không thành công. (I5f1f8)
Phiên bản 1.9.0
Ngày 17 tháng 4 năm 2024
Phát hành androidx.activity:activity:1.9.0
, androidx.activity:activity-compose:1.9.0
và androidx.activity:activity-ktx:1.9.0
. Phiên bản 1.9.0 bao gồm các thay đổi sau.
Các thay đổi quan trọng kể từ phiên bản 1.8.0
ComponentActivity
hiện triển khaiOnUserLeaveHintProvider
để cho phép các thành phần gọi lại cho sự kiệnonUserLeaveHint
.- Giờ đây, các API
OnBackPressedCallback
,BackHandler
vàPredictiveBackHandler
sẽ cảnh báo khi gọionBackPressedDispatcher.onBackPressed()
khi xử lý lại vì việc đó sẽ luôn làm hỏng Ảnh động xem trước thao tác quay lại. Hãy xem hướng dẫn về các phương pháp hay nhất để biết thêm thông tin. - Phần còn lại của Activity API (API Hoạt động) đã được viết lại trong Kotlin và tất cả tiện ích trước đó có trong
activity-ktx
đều đã được chuyển sangactivity
.activity-ktx
hiện hoàn toàn trống.- Trong quá trình chuyển đổi
ActivityResultLauncher
sang Kotlin, phương thứcgetContract
hiện là một thuộc tính Kotlin trừu tượng. Đây là một thay đổi tương thích với tệp nhị phân, nhưng nguồn sẽ bị lỗi nếu phương thức triển khaiActivityResultLauncher
của bạn được viết bằng Kotlin.
- Trong quá trình chuyển đổi
Phiên bản 1.9.0-rc01
Ngày 3 tháng 4 năm 2024
Phát hành androidx.activity:activity:1.9.0-rc01
, androidx.activity:activity-compose:1.9.0-rc01
và androidx.activity:activity-ktx:1.9.0-rc01
. Phiên bản 1.9.0-rc01 bao gồm các thay đổi sau.
Cập nhật các phần phụ thuộc
- Hoạt động hiện phụ thuộc vào Trình cài đặt hồ sơ 1.3.1.
Phiên bản 1.9.0-beta01
Ngày 20 tháng 3 năm 2024
Phát hành androidx.activity:activity:1.9.0-beta01
, androidx.activity:activity-compose:1.9.0-beta01
và androidx.activity:activity-ktx:1.9.0-beta01
. Phiên bản 1.9.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi hồi quy hiệu suất khi khởi động Hoạt động có trong Hoạt động
1.9.0-alpha02
do gọiOnBackPressedDispatcher
trong quá trình tạo Hoạt động. (Ie75e3)
Phiên bản 1.9.0-alpha03
Ngày 7 tháng 2 năm 2024
Phát hành androidx.activity:activity:1.9.0-alpha03
, androidx.activity:activity-compose:1.9.0-alpha03
và androidx.activity:activity-ktx:1.9.0-alpha03
. Phiên bản 1.9.0-alpha03 bao gồm các thay đổi sau.
Cảnh báo tìm lỗi mã nguồn
- Giờ đây, các API
OnBackPressedCallback
,BackHandler
vàPredictiveBackHandler
sẽ cảnh báo khi gọionBackPressedDispatcher.onBackPressed()
khi xử lý lại vì việc đó sẽ luôn làm hỏng Ảnh động xem trước thao tác quay lại. Hãy xem hướng dẫn về các phương pháp hay nhất để biết thêm thông tin. (1e4222, 2c950d, b/287505200)
Sửa lỗi
- Nếu hệ thống bắt đầu gửi một sự kiện xem trước thao tác quay lại khi cử chỉ Xem trước thao tác quay lại đang chạy, thì Cử chỉ xem trước thao tác quay lại hiện đang chạy sẽ bị huỷ và sự kiện quay lại mới sẽ được dùng để bắt đầu một Cử chỉ xem trước thao tác quay lại mới. (I3482e)
- Khắc phục sự cố lần đầu truy cập vào
onBackPressedDispatcher
quaComponentActivity
qua một luồng ở chế độ nền. Hiện đã an toàn để truy cập vàoonBackPressedDispatcher
trên bất kỳ chuỗi nào. (I79955)
Phiên bản 1.9.0-alpha02
Ngày 24 tháng 1 năm 2024
Phát hành androidx.activity:activity:1.9.0-alpha02
, androidx.activity:activity-compose:1.9.0-alpha02
và androidx.activity:activity-ktx:1.9.0-alpha02
. Phiên bản 1.9.0-alpha02 bao gồm các thay đổi sau.
Hoạt động chuyển đổi trong Kotlin
ActivityResultRegistry
đã được viết lại trong Kotlin. Điều này đảm bảo rằng tính chất rỗng của các tham số chung trên hợp đồng được truyền đếnregister
sẽ được truyền chính xác quaActivityResultLauncher
được trả về cho bạn. (I121f0)ActivityResult
đã được viết lại trong Kotlin. Các tiện ích KotlinActivityResult
hỗ trợ việc giải cấu trúc trong các trườngresultCode
vàdata
đã được di chuyển từactivity-ktx
sangactivity
. (I0565a)- Các phần mở rộng Kotlin của
by viewModels()
choComponentActivity
vàtrackPipAnimationHintView
đã được chuyển từactivity-ktx
sangactivity
. Cấu phần phần mềmactivity-ktx
hiện hoàn toàn trống. (I0a444)
Sửa lỗi
- API
enableEdgeToEdge
hiện vẽ xung quanh mọi vết cắt trên màn hình. (a3644b, b/311173461) - Trong phần Hoạt động
1.8.2
: Sửa phần bổ sung được truyền vàoACTION_SYSTEM_FALLBACK_PICK_IMAGES
của Hợp đồng hoạt động trong công cụ chọn ảnh để truyền chính xác khoáEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, thay vì dùng phần bổ sung với khoá"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Nếu là OEM (Nhà sản xuất thiết bị gốc) sẽ triển khai Công cụ chọn ảnh dự phòng cho hệ thống để hỗ trợ cả hai thành phần đi kèm nhằm đảm bảo khả năng tương thích rộng nhất. (I96a00)
Phiên bản 1.9.0-alpha01
Ngày 29 tháng 11 năm 2023
Phát hành androidx.activity:activity:1.9.0-alpha01
, androidx.activity:activity-compose:1.9.0-alpha01
và androidx.activity:activity-ktx:1.9.0-alpha01
. Phiên bản 1.9.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
ComponentActivity
hiện triển khaiOnUserLeaveHintProvider
để cho phép các thành phần gọi lại cho sự kiệnonUserLeaveHint
. (I54892)
Thay đổi về API
ComponentActivity
đã được viết lại trong Kotlin. (I14f31)ActivityResultCaller
đã được viết lại trong Kotlin. (Ib02e4)ActivityResultLauncher
đã được viết lại trong Kotlin. Trong quá trình chuyển đổi đó, phương thứcgetContract
hiện là một thuộc tính Kotlin trừu tượng. Đây là một thay đổi tương thích với tệp nhị phân, nhưng nguồn sẽ bị lỗi nếu phương thức triển khaiActivityResultLauncher
của bạn được viết bằng Kotlin. (Id4615)PickVisualMediaRequest
hiện có cùng cấp độ API tối thiểu là 19 như hợp đồng Kết quả hoạt độngPickVisualMedia
. (Id6e21)
Cập nhật về phần phụ thuộc
- Hoạt động hiện phụ thuộc vào Chính
1.13.0-alpha01
. (I14f31)
Phiên bản 1.8
Phiên bản 1.8.2
Ngày 13 tháng 12 năm 2023
Phát hành androidx.activity:activity:1.8.2
, androidx.activity:activity-compose:1.8.2
và androidx.activity:activity-ktx:1.8.2
. Phiên bản 1.8.2 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa phần bổ sung được truyền vào
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
của Hợp đồng hoạt động trong công cụ chọn ảnh để truyền chính xác khoáEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
, thay vì dùng phần bổ sung với khoá"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
. Nếu là OEM (Nhà sản xuất thiết bị gốc) sẽ triển khai Công cụ chọn ảnh dự phòng cho hệ thống để hỗ trợ cả hai thành phần đi kèm nhằm đảm bảo khả năng tương thích rộng nhất. (I96a00)
Phiên bản 1.8.1
Ngày 15 tháng 11 năm 2023
Phát hành androidx.activity:activity:1.8.1
, androidx.activity:activity-compose:1.8.1
và androidx.activity:activity-ktx:1.8.1
. Phiên bản 1.8.1 bao gồm các thay đổi sau.
Sửa lỗi
- Giờ đây,
OnBackPressedDispatcher
sẽ tiếp tục gửi đến đúngOnBackPressedCallback
ngay cả sau khi thêmOnBackPressedCallback
mới trong lúc xử lý cử chỉ quay lại. (Id0ff6)
Phiên bản 1.8.0
Ngày 4 tháng 10 năm 2023
Phát hành androidx.activity:activity:1.8.0
, androidx.activity:activity-compose:1.8.0
và androidx.activity:activity-ktx:1.8.0
. Phiên bản 1.8.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.7.0
- Xem trước thao tác quay lại –
OnBackPressedCallback
nay cung cấp các lệnh gọi lại mới Xem trước thao tác quay lại để xử lý việc bắt đầu, tiến hành cử chỉ quay lại trong suốt cử chỉ và huỷ cử chỉ quay lại cùng với lệnh gọi lạihandleOnBackPressed()
trước đó khi xác nhận cử chỉ quay lại. Đi kèm với đó cũng là Thành phần kết hợpPredictiveBackHandler
để xử lý các sự kiện xem trước thao tác quay lại trong Activity Compose. Lớp này cung cấp một Luồng (Flow) các đối tượng BackEventCompat được thu thập trong lambda tạm ngưng mà bạn cung cấp:
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()
hiện đã ngừng hoạt động và thay vào đó là các API để xử lý ngược. Giờ đây, nhà phát triển nên sử dụng OnBackPressedDispatcher
thay vì ghi đè phương thức này.
- EdgeToEdge –
ComponentActivity.enableEdgeToEdge()
đã được thêm vào để dễ dàng thiết lập màn hình tràn viền theo cách tương thích ngược.
Phiên bản 1.8.0-rc01
Ngày 20 tháng 9 năm 2023
Phát hành androidx.activity:activity:1.8.0-rc01
, androidx.activity:activity-compose:1.8.0-rc01
và androidx.activity:activity-ktx:1.8.0-rc01
. Phiên bản 1.8.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.8.0-beta01
Ngày 6 tháng 9 năm 2023
Phát hành androidx.activity:activity:1.8.0-beta01
, androidx.activity:activity-compose:1.8.0-beta01
và androidx.activity:activity-ktx:1.8.0-beta01
. Phiên bản 1.8.0-beta01 bao gồm các thay đổi sau.
Cải thiện tài liệu
- Cải thiện tài liệu của
BackEventCompat
. (aosp/2722254)
Phiên bản 1.8.0-alpha07
Ngày 23 tháng 8 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha07
, androidx.activity:activity-compose:1.8.0-alpha07
và androidx.activity:activity-ktx:1.8.0-alpha07
. Phiên bản 1.8.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
Activity Compose thêm một Thành phần kết hợp
PredictiveBackHandler
mới để xử lý các sự kiện xem trước thao tác quay lại. Đối tượng này cung cấpFlow
đối tượngBackEventCompat
phải được thu thập trong lambda đang tạm ngưng mà bạn cung cấp: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 } }
Thư viện này cũng đi kèm với cảnh báo thời gian biên dịch thông qua quy tắc tìm lỗi mã nguồn để đảm bảo
Flow
gọicollect()
. (Id2773, b/294884345)onBackPressedDispatcher
trongComponentActivity
hiện được khởi chạy từng phần để chỉ được tạo khi cần. (I0bf8e)
Sửa lỗi
ComponentActivity
sẽ không hiển thị NPE trên Android 13 nữa khi nhận được lệnh gọi lạionBackPressed()
và Hoạt động đã ở trạng tháiDESTROYED
. (Idb055, b/291869278)- Xoá việc sử dụng API
isAtLeastU()
thử nghiệm (Ie9117, b/289269026)
Phiên bản 1.8.0-alpha06
Ngày 21 tháng 6 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha06
, androidx.activity:activity-compose:1.8.0-alpha06
và androidx.activity:activity-ktx:1.8.0-alpha06
. Phiên bản 1.8.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây,
OnBackPressedDispatcher
sẽ huỷ chính xác mọi lệnh gọi lại bị xoá trong Cử chỉ xem trước thao tác quay lại. (I3f90f)
Thay đổi về API
- Giờ đây, khi truyền
SystemBarStyle.auto
đến APIenableEdgeToEdge
, bạn có thể ghi đè tham số lambdadetectDarkMode
để cung cấp logic tuỳ chỉnh giúp phát hiện chế độ ban đêm. (aosp/2546393, b/278263793)
Phiên bản 1.8.0-alpha05
Ngày 7 tháng 6 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha05
, androidx.activity:activity-compose:1.8.0-alpha05
và androidx.activity:activity-ktx:1.8.0-alpha05
. Phiên bản này được phát triển trong một nhánh nội bộ.
Thay đổi về API
- Hoạt động hiện cung cấp một lớp
BackEventCompat
đóng vai trò là phiên bảnBackEvent
tương thích ngược được tách khỏi lớpBackEvent
của khung. - Thay đổi có thể gây lỗi: Phương thức
handleOnBackStarted
vàhandleOnBackProgressed
củaOnBackPressedCallback
hiện nhận được một thực thểandroidx.activity.BackEventCompat
thay vì một lớpandroid.window.BackEvent
của khung. Các API@VisibleForTesting
tương đương trênOnBackPressedDispatcher
cũng đã được cập nhật. - Hàm khởi tạo cho
OnBackPressedDispatcher
hiện sẽ lấy một thực thểConsumer<Boolean>
(không bắt buộc) cho phép chủ sở hữu của trình điều phối nhận lệnh gọi lại bất cứ khi nào số lượng lệnh gọi lại được bật thay đổi từ 0 thành khác 0 hoặc ngược lại.
Sửa lỗi
- Trong phần Hoạt động
1.7.2
: Khắc phục sự cốReportDrawn
khi di chuyển khỏi màn hình trước khireport
được gọi. (Ic46f1, b/260506820)
Phiên bản 1.8.0-alpha04
Ngày 10 tháng 5 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha04
, androidx.activity:activity-compose:1.8.0-alpha04
và androidx.activity:activity-ktx:1.8.0-alpha04
. Phiên bản này được phát hành từ một nhánh nội bộ.
Sửa lỗi
- Trong phần Hoạt động 1.7.1: –
ReportFullyDrawExecuter
không còn rò rỉ khi sử dụngComponentActivity
vớiActivityScenario
. (Id2ff2, b/277434271)
Phiên bản 1.8.0-alpha03
Ngày 12 tháng 4 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha03
, androidx.activity:activity-compose:1.8.0-alpha03
và androidx.activity:activity-ktx:1.8.0-alpha03
. Phiên bản này được phát hành từ một nhánh nội bộ.
Tính năng mới
- Thêm
ComponentActivity.setUpEdgeToEdge()
để dễ dàng thiết lập màn hình tràn viền theo cách tương thích ngược.
Thay đổi về API
ComponentActivity.onBackPressed()
hiện đã ngừng hoạt động và thay vào đó là các API để xử lý ngược. Giờ đây, nhà phát triển nên sử dụngOnBackPressedDispatcher
thay vì ghi đè phương thức này. (Ibce2f, b/271596918)ComponentDialog
vàComponentActivity
hiện chứa APIinitViewTreeOwners()
công khai được dùng để khởi tạo tất cả chủ sở hữu cây khung hiển thị trước khi đặt khung hiển thị nội dung. (Ibdce0, b/261314581)
Sửa lỗi
- Khắc phục vấn đề Mảnh vô hiệu hoá nhầm MenuHosts và khiến các trình đơn khác trong Hoạt động có hành vi không mong muốn. (I9404e, b/244336571)
Các thay đổi khác
ActivityResultRegister
hiện sử dụng KotlinRandom
thay vì Java. (I4d98f, b/272096025)
Phiên bản 1.8.0-alpha02
Ngày 8 tháng 3 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha02
, androidx.activity:activity-compose:1.8.0-alpha02
và androidx.activity:activity-ktx:1.8.0-alpha02
. Phát triển từ một nhánh nội bộ.
Cập nhật các phần phụ thuộc
- Trong phần Hoạt động
1.7.0-rc01
: Hoạt động hiện phụ thuộc vàoLifecycle 2.6.0
.
Phiên bản 1.8.0-alpha01
Ngày 8 tháng 2 năm 2023
Phát hành androidx.activity:activity:1.8.0-alpha01
, androidx.activity:activity-compose:1.8.0-alpha01
và androidx.activity:activity-ktx:1.8.0-alpha01
. Phiên bản này được tạo từ một nhánh nội bộ.
Tính năng mới
- Lớp
OnBackPressedCallback
hiện chứa các lệnh gọi lại tiến trình Xem trước thao tác quay lại mới để xử lý việc bắt đầu, tiến hành cử chỉ quay lại trong suốt quá trình thực hiện cử chỉ và cử chỉ quay lại bị huỷ cùng với lệnh gọi lạihandleOnBackPressed()
trước tại thời điểm cử chỉ quay lại được xác nhận.
Phiên bản 1.7
Phiên bản 1.7.2
Ngày 24 tháng 5 năm 2023
Phát hành androidx.activity:activity:1.7.2
, androidx.activity:activity-compose:1.7.2
và androidx.activity:activity-ktx:1.7.2
. Phiên bản 1.7.2 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố
ReportDrawn
khi di chuyển khỏi màn hình trước khireport
được gọi. (Ic46f1, b/260506820)
Phiên bản 1.7.1
Ngày 19 tháng 4 năm 2023
Phát hành androidx.activity:activity:1.7.1
, androidx.activity:activity-compose:1.7.1
và androidx.activity:activity-ktx:1.7.1
. Phiên bản 1.7.1 bao gồm các thay đổi sau.
Sửa lỗi
ReportFullyDrawExecuter
không còn rò rỉ khi sử dụngComponentActivity
vớiActivityScenario
. (Id2ff2, b/277434271)
Phiên bản 1.7.0
Ngày 22 tháng 3 năm 2023
Phát hành androidx.activity:activity:1.7.0
, androidx.activity:activity-compose:1.7.0
và androidx.activity:activity-ktx:1.7.0
. Phiên bản 1.7.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.6.0
- Các hợp đồng hoạt động của Công cụ chọn ảnh trong
PickVisualMedia
vàPickMultipleVisualMedia
đã được cập nhật để chứa một bản dự phòng bổ sung khi không cóMediaStore.ACTION_PICK_IMAGES
. Tính năng này cho phép OEM và các ứng dụng hệ thống (chẳng hạn như Dịch vụ Google Play) mang đến trải nghiệm nhất quán cho Công cụ chọn ảnh trên nhiều thiết bị Android và cấp độ API bằng cách triển khai thao tác dự phòng. Công cụ chọn ảnh sẽ sử dụng phương án dự phòng này nếu có trước khi quay lại sử dụngIntent.ACTION_OPEN_DOCUMENT
. Công cụ này vẫn hỗ trợ tất cả thiết bị API 19 trở lên. ComponentDialog
hiện triển khaiSavedStateRegistryOwner
và có quyền truy cập vàoSavedStateRegistry
riêng, đồng thời đặtSavedStateRegistryOwner
choViewTree
. Giờ đây, bạn có thể sử dụng Jetpack Compose trongComponentDialog
vì bộ công cụ này đáp ứng cảLifecycleOwner
vàSavedStateRegistryOwner
được đính kèm với Cửa sổ thông qua các yêu cầu về APIViewTree
.- Giờ đây,
IntentSenderRequest.Builder.setFlags()
cho phép bạn đặt nhiều cờ từIntent
, thay vì chỉ một cờ.
Chuyển đổi Kotlin
Một số lớp Activity (Hoạt động) đã được chuyển đổi sang Kotlin. Tất cả các lớp đã chuyển đổi vẫn giữ nguyên khả năng tương thích nhị phân với các phiên bản trước. Các lớp sau có những thay đổi không tương thích với nguồn đối với những lớp được viết bằng Kotlin: ActivityResultRegistryOwner
, OnBackPressedDispatcherOwner
.
Bảng bên dưới cung cấp các lượt chuyển đổi nguồn cho phiên bản mới của Hoạt động:
Hoạt động 1.5 | Hoạt động 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
Các lớp này cũng đã được chuyển đổi sang Kotlin, nhưng vẫn tương thích với nguồn: ContextAware
, ContextAwareHelper
, OnContextAvailableListener
, IntentSenderRequest
và OnBackPressedDispatcher
FullyDrawnReporter API
ComponentActivity
hiện cung cấp thực thể FullyDrawnReporter
cho phép nhiều thành phần báo cáo khi các thành phần đó sẵn sàng tương tác. ComponentActivity
sẽ đợi tất cả các thành phần hoàn tất rồi mới thay mặt bạn gọi reportFullyDrawn()
. Các API này sẽ giúp bạn đáp ứng những yêu cầu về thời gian và không cần phải gọi khi thực hiện lệnh gọi onDraw
.
Bạn nên dùng các API này để:
- Báo hiệu cho Android Runtime khi khởi động xong, nhằm đảm bảo tất cả các mã chạy trong quá trình khởi động nhiều khung đều được bao gồm và ưu tiên biên dịch trong nền.
- Báo hiệu cho Macrobenchmark và Play Vitals khi ứng dụng của bạn được xem là hiển thị đầy đủ các chỉ số khởi động, qua đó bạn có thể theo dõi hiệu suất.
3 Activity Compose API được thêm vào để giúp bạn dễ dàng sử dụng FullyDrawnReporter
từ từng thành phần kết hợp:
ReportDrawn
cho biết thành phần kết hợp của bạn đã sẵn sàng tương tác ngay lập tức.ReportDrawnWhen
sử dụng một vị từ (ví dụ:list.count > 0
) để cho biết thời điểm thành phần kết hợp đã sẵn sàng tương tác.ReportDrawnAfter
sử dụng phương thức tạm ngưng để khi hoàn tất, cho biết rằng bạn đã sẵn sàng tương tác.
Thông tin cập nhật về phần phụ thuộc
- Hoạt động bây giờ phụ thuộc vào Vòng đời
2.6.1
. (8fc31d) - Hoạt động hiện phụ thuộc vào ProfileInstaller
1.3.0
. (83d3b1)
Phiên bản 1.7.0-rc01
Ngày 8 tháng 3 năm 2023
Phát hành androidx.activity:activity:1.7.0-rc01
, androidx.activity:activity-compose:1.7.0-rc01
và androidx.activity:activity-ktx:1.7.0-rc01
. Phiên bản 1.7.0-rc01 bao gồm các thay đổi sau.
Cập nhật các phần phụ thuộc
- Hoạt động hiện phụ thuộc vào
Lifecycle 2.6.0
.
Phiên bản 1.7.0-beta02
Ngày 22 tháng 2 năm 2023
Phát hành androidx.activity:activity:1.7.0-beta02
, androidx.activity:activity-compose:1.7.0-beta02
và androidx.activity:activity-ktx:1.7.0-beta02
. Phiên bản 1.7.0-beta02 bao gồm các thay đổi sau.
Các thay đổi về API
- Thao tác và ứng dụng khác mà hợp đồng
PickVisualMedia
vàPickMultipleVisualMedia
sử dụng để dự phòng khi không cóMediaStore.ACTION_PICK_IMAGES
hiện là các hằng số công khai, giúp đảm bảo độ ổn định của API với các OEM (Nhà sản xuất thiết bị gốc) và những ứng dụng hệ thống muốn mang đến trải nghiệm nhất quán cho Công cụ chọn ảnh. Việc triển khai phương án dự phòng này vẫn chỉ giới hạn ở các ứng dụng hệ thống. (Icd320)
Phiên bản 1.7.0-beta01
Ngày 8 tháng 2 năm 2023
Phát hành androidx.activity:activity:1.7.0-beta01
, androidx.activity:activity-compose:1.7.0-beta01
và androidx.activity:activity-ktx:1.7.0-beta01
. Phiên bản 1.7.0-beta01 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây,
IntentSenderRequest.Builder.setFlags()
cho phép bạn đặt nhiều cờ từIntent
, thay vì chỉ một cờ. (Iac04c)
Sửa lỗi
- Bản dự phòng cho
PickVisualMedia
khi Công cụ chọn ảnh cho khung không sử dụng được hiện giới hạn chính xác việc xử lý các ứng dụng đã cài đặt trong hình ảnh hệ thống của thiết bị. (If8ae6)
Hoạt động chuyển đổi trong Kotlin
- Giờ đây,
ActivityResultRegistryOwner
được viết bằng Kotlin. Đây là thay đổi không tương thích với nguồn cho các lớp được viết bằng Kotlin – giờ đây, bạn phải ghi đè thuộc tínhactivityResultRegistry
thay vì triển khai hàmgetActivityResultRegistry()
. (I0b00e) - Giờ đây,
OnBackPressedDispatcherOwner
được viết bằng Kotlin. Đây là thay đổi không tương thích với nguồn cho các lớp được viết bằng Kotlin – giờ đây, bạn phải ghi đè thuộc tínhonBackPressedDispatcher
thay vì triển khai hàmgetOnBackPressedDispatcher
. (Ia277d) ContextAware
,ContextAwareHelper
,OnContextAvailableListener
,IntentSenderRequest
vàOnBackPressedDispatcher
hiện được viết bằng Kotlin. (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)
Phiên bản 1.7.0-alpha04
Ngày 25 tháng 1 năm 2023
Phát hành androidx.activity:activity:1.7.0-alpha04
, androidx.activity:activity-compose:1.7.0-alpha04
và androidx.activity:activity-ktx:1.7.0-alpha04
. Phiên bản 1.7.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây, hợp đồng Kết quả hoạt động
PickVisualMedia
vàPickMultipleVisualMedia
sẽ sử dụng Công cụ chọn ảnh do Dịch vụ Google Play cung cấp (trong trường hợp không sử dụng được Công cụ chọn ảnh do hệ thống Android cung cấp (ví dụ:MediaStore.ACTION_PICK_IMAGES
). Chúng tôi đã ngừng sử dụngisPhotoPickerAvailable()
API chỉ phát hiện Công cụ chọn ảnh do hệ thống Android cung cấp. Bạn nên sử dụngisPhotoPickerAvailable(Context)
API mới. API này sẽ trả về nếu có Công cụ chọn ảnh. (I55be6)
Phiên bản 1.7.0-alpha03
Ngày 11 tháng 1 năm 2023
Phát hành androidx.activity:activity:1.7.0-alpha03
, androidx.activity:activity-compose:1.7.0-alpha03
và androidx.activity:activity-ktx:1.7.0-alpha03
. Phiên bản 1.7.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
ComponentDialog
hiện triển khaiSavedStateRegistryOwner
và có quyền truy cập vàoSavedStateRegistry
riêng cũng như đặtSavedStateRegistryOwner
cho ViewTree của ComponentDialog. Giờ đây, bạn có thể dùng Jetpack Compose trongComponentDialog
vì bộ công cụ này đáp ứng cảLifecycleOwner
vàSavedStateRegistryOwner
được đính kèm với Cửa sổ thông qua các yêu cầu về ViewTree API. (Idca17, I73468 b/261162296)
Các thay đổi về API
- Thêm thành phần kết hợp
ReportDrawn
để đánh dấu ngay hoạt động là sẵn sàng gọireportFullyDrawn
. (Ic5b14, b/259687964)
Hoạt động chuyển đổi trong Kotlin
- Cả hai lớp
ActvitiyResultCallback
vàOnBackPressedCallback
đều đã được chuyển đổi sang Kotlin nhưng vẫn tương thích với nguồn và tệp nhị phân. (Ifc5e5, Ide1b0, b/257291701)
Phiên bản 1.7.0-alpha02
Ngày 24 tháng 10 năm 2022
Phát hành androidx.activity:activity:1.7.0-alpha02
, androidx.activity:activity-compose:1.7.0-alpha02
và androidx.activity:activity-ktx:1.7.0-alpha02
. Phiên bản 1.7.0-alpha02 bao gồm các thay đổi sau.
Sửa lỗi
- Trong phần Hoạt động
1.6.1
: Khắc phục vấn đề với hợp đồng Kết quả hoạt động củaPickMultipleVisualMedia
không chạy trên các thiết bị Android R khi dùng giá trị mặc định chomaxItems
. (Ie2776, b/249182130)
Phiên bản 1.7.0-alpha01
Ngày 5 tháng 10 năm 2022
Phát hành androidx.activity:activity:1.7.0-alpha01
, androidx.activity:activity-compose:1.7.0-alpha01
và androidx.activity:activity-ktx:1.7.0-alpha01
. Phiên bản 1.7.0-alpha01 bao gồm các thay đổi sau.
FullyDrawnReporter API
ComponentActivity
hiện cung cấp thực thể FullyDrawnReporter
cho phép nhiều thành phần báo cáo khi các thành phần đó sẵn sàng tương tác. ComponentActivity
sẽ đợi tất cả các thành phần hoàn tất rồi mới thay mặt bạn gọi reportFullyDrawn()
. Các API này sẽ giúp bạn đáp ứng những yêu cầu về thời gian và không cần phải gọi khi thực hiện lệnh gọi onDraw
.
Bạn nên dùng các API này để:
- Báo hiệu cho Android Runtime khi khởi động xong, nhằm đảm bảo tất cả các mã chạy trong quá trình khởi động nhiều khung đều được bao gồm và ưu tiên biên dịch trong nền.
- Báo hiệu cho Macrobenchmark và Play Vitals khi ứng dụng của bạn được xem là hiển thị đầy đủ các chỉ số khởi động, qua đó bạn có thể theo dõi hiệu suất.
2 Activity Compose API đã được thêm vào để giúp việc sử dụng FullyDrawnReporter
từ từng thành phần kết hợp trở nên thuận tiện hơn:
ReportDrawnWhen
sử dụng một vị từ (ví dụ:list.count > 0
) để cho biết thời điểm thành phần kết hợp đã sẵn sàng tương tác.ReportDrawnAfter
sử dụng phương thức tạm ngưng để khi hoàn tất, cho biết rằng bạn đã sẵn sàng tương tác.
Phiên bản 1.6.1
Phiên bản 1.6.1
Ngày 24 tháng 10 năm 2022
Phát hành androidx.activity:activity:1.6.1
, androidx.activity:activity-compose:1.6.1
và androidx.activity:activity-ktx:1.6.1
. Phiên bản 1.6.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề hợp đồng Kết quả hoạt động trong
PickMultipleVisualMedia
không chạy trên các thiết bị Android R khi sử dụng giá trị mặc định chomaxItems
. (Ie2776, b/249182130)
Phiên bản 1.6.0
Phiên bản 1.6.0
Ngày 21 tháng 9 năm 2022
Phát hành androidx.activity:activity:1.6.0
, androidx.activity:activity-compose:1.6.0
và androidx.activity:activity-ktx:1.6.0
. Phiên bản 1.6.0 bao gồm các thay đổi sau.
Các thay đổi quan trọng kể từ phiên bản 1.5.0
- Thêm
ActivityResultContracts.PickVisualMedia
vàActivityResultContracts.PickMultipleVisualMedia
để cung cấp một hợp đồng tương thích ngược sử dụngMediaStore.ACTION_PICK_IMAGES
khi Công cụ chọn ảnh có sẵn vàIntent.ACTION_OPEN_DOCUMENT
khi không có sẵn. - Tích hợp
OnBackInvokedCallback
trong Android 13 vàoOnBackPressedDispatchers
doComponentActivity
vàComponentDialog
cung cấp. Điều này đảm bảo tất cả các API được tạo trênOnBackPressedDispatcher
đều hoạt động khi bật xem trước thao tác quay lại.
Phiên bản 1.6.0-rc02
Ngày 7 tháng 9 năm 2022
Phát hành androidx.activity:activity:1.6.0-rc02
, androidx.activity:activity-compose:1.6.0-rc02
và androidx.activity:activity-ktx:1.6.0-rc02
. Phiên bản 1.6.0-rc02 bao gồm bao gồm các thay đổi sau.
Sửa lỗi
OnBackPressedDispatcher
hiện đăng kýOnBackInvokedCallback
vớiPRIORITY_DEFAULT
thay vìPRIORITY_OVERLAY
. (I3901f)- Các lớp mở rộng
ComponentActivity
giờ sẽ luôn gửi cả hai lệnh gọi lạionMultiWindowModeChanged()
của chúng. (Ic4d85) ActivityResultRegistry
sẽ không trả về kết quả choActivityResultCallback
khi lệnh gọilaunch
gửi bất kỳException
nào và lệnh gọi lại đã được đăng ký mà không cóLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
hiện sẽ gửi đúng lệnh gọi trình đơn mà không cần gọi hàm cấp cao hơn trong hoạt động của bạn. (Ie33c5, b/238057118)
Cập nhật về phần phụ thuộc
- Thư viện
Activity
hiện phụ thuộc vào Vòng đời2.5.1
. (If6697)
Phiên bản 1.6.0-rc01
Ngày 24 tháng 8 năm 2022
Phát hành androidx.activity:activity:1.6.0-rc01
, androidx.activity:activity-compose:1.6.0-rc01
và androidx.activity:activity-ktx:1.6.0-rc01
. Phiên bản 1.6.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
- Việc khởi chạy
OnBackPressedDispatcher
sẽ không còn gây ra lỗiClassVerificationError
khi sử dụng các phiên bản SDK trước 33. (Ic32e1) - Giờ đây, các lớp ghi đè lệnh gọi lại
onPictureInPictureModeChanged()
củaComponentActivity
sẽ luôn gửi lệnh gọi lại của các lớp này đi. (Ib7fdb)
Phiên bản 1.6.0-beta01
Ngày 10 tháng 8 năm 2022
Phát hành androidx.activity:activity:1.6.0-beta01
, androidx.activity:activity-compose:1.6.0-beta01
và androidx.activity:activity-ktx:1.6.0-beta01
. Phiên bản 1.6.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Đánh dấu các phương thức
startActivityForResult
vàstartIntentSenderForResult
không còn được dùng nữa trênComponentActivity
bằng@NonNull
, vì việc truyềnnull
luôn dẫn đến sự cố. (Id2a25, b/231476082)
Sửa lỗi
- Từ phần Hoạt động
1.5.1
:ActivityResultRegistry
sẽ không trả về kết quả choActivityResultCallback
khi lệnh gọilaunch
gửi bất kỳException
nào và lệnh gọi lại đã được đăng ký mà không cóLifecycleOwner
. (Ia7ff7, b/238350794) - Từ phần Hoạt động
1.5.1
:ComponentActivity
hiện sẽ gửi đúng lệnh gọi trình đơn đến các lệnh ghi đèonPrepareOptionMenu()
,onCreateOptionsMenu()
vàonOptionsItemSelected()
mà không cần gọi hàm cấp cao hơn. (Ie33c5, b/238057118)
Cập nhật về phần phụ thuộc
- Trong phần Hoạt động
1.5.1
: Thư việnActivity
hiện phụ thuộc vào phiên bảnLifecycle
2.5.1
. (If6697)
Phiên bản 1.6.0-alpha05
Ngày 15 tháng 6 năm 2022
Phát hành androidx.activity:activity:1.6.0-alpha05
, androidx.activity:activity-compose:1.6.0-alpha05
và androidx.activity:activity-ktx:1.6.0-alpha05
. Phiên bản 1.6.0-alpha05 được phát triển trong một nhánh phát hành riêng trước và không có nhật ký cam kết.
Thay đổi API
minCompileSdk
hiện đã là cấp 33 để phù hợp với SDK Tiramisu Beta 3
Sửa lỗi
- Khắc phục sự cố trên các thiết bị cũ hơn khi kiểm tra tiện ích SDK cho
PickVisualMedia
ActivityResultContract
để tính năng này hoạt động được vớiACTION_OPEN_DOCUMENT
trên các thiết bị chạy Android 10 trở xuống.
Phiên bản 1.6.0-alpha04
Ngày 18 tháng 5 năm 2022
Phát hành androidx.activity:activity:1.6.0-alpha04
và androidx.activity:activity-ktx:1.6.0-alpha04
.
Sửa lỗi
- Đã khắc phục lỗi trong
PickVisualMediaRequest
, khi cố gắng tạo một yêu cầu, thông qua Trình tạo hoặc hàm Kotlin cấp cao nhất, sẽ dẫn đến việc tràn ngăn xếp. - Tích hợp
OnBackInvokedCallback
trong Android 13 Dev Beta 2 vàoOnBackPressedDispatcher
doComponentDialog
cung cấp. Điều này đảm bảo tất cả các API được tạo trênOnBackPressedDispatcher
đều hoạt động khi bật cử chỉ quay vuốt ngược để dự đoán.
Phiên bản 1.6.0-alpha03
Ngày 27 tháng 4 năm 2022
Phát hành androidx.activity:activity:1.6.0-alpha03
, androidx.activity:activity-compose:1.6.0-alpha03
và androidx.activity:activity-ktx:1.6.0-alpha03
.
- Lưu ý: Phiên bản này sẽ chỉ biên dịch theo SDK dành cho Nhà phát triển Android 13 Beta.
Tính năng mới
- Đã thêm
ActivityResultContracts.PickVisualMedia
vàActivityResultContracts.PickMultipleVisualMedia
để cung cấp một hợp đồng tương thích ngược sử dụngMediaStore.ACTION_PICK_IMAGES
khi Bộ chọn ảnh có sẵn vàIntent.ACTION_OPEN_DOCUMENT
khi không có sẵn. - Tích hợp
OnBackInvokedCallback
trong Android 13 Dev Beta 1 vàoOnBackPressedDispatcher
doComponentActivity
cung cấp. Điều này đảm bảo tất cả các API được tạo trênOnBackPressedDispatcher
đều hoạt động khi bật cử chỉ quay vuốt ngược để dự đoán.
Phiên bản 1.6.0-alpha01
Ngày 23 tháng 3 năm 2022
Phát hành androidx.activity:activity:1.6.0-alpha01
, androidx.activity:activity-compose:1.6.0-alpha01
và androidx.activity:activity-ktx:1.6.0-alpha01
.
- Lưu ý: Phiên bản này sẽ chỉ biên dịch theo SDK Bản dùng thử cho nhà phát triển 2 Android 13.
Tính năng mới
- Các thay đổi tích hợp trong Bản dùng thử cho nhà phát triển Android 13 2 vào
ComponentActivity
.
Phiên bản 1.5.1
Phiên bản 1.5.1
Ngày 27 tháng 7 năm 2022
Phát hành androidx.activity:activity:1.5.1
, androidx.activity:activity-compose:1.5.1
và androidx.activity:activity-ktx:1.5.1
. Phiên bản 1.5.1 bao gồm các thay đổi sau.
Sửa lỗi
ActivityResultRegistry
sẽ không trả về kết quả choActivityResultCallback
khi lệnh gọilaunch()
gửi bất kỳException
nào, và lệnh gọi lại đã được đăng ký mà không cóLifecycleOwner
. (Ia7ff7, b/238350794)ComponentActivity
hiện sẽ gửi đúng lệnh gọi trình đơn đến các lệnh ghi đèonPrepareOptionMenu()
,onCreateOptionsMenu()
vàonOptionsItemSelected()
mà không cần gọi hàm cấp cao hơn. (Ie33c5, b/238057118)
Cập nhật về phần phụ thuộc
- Thư viện
Activity
hiện phụ thuộc vào Vòng đời2.5.1
. (If6697)
Phiên bản 1.5.0
Phiên bản 1.5.0
Ngày 29 tháng 6 năm 2022
Phát hành androidx.activity:activity:1.5.0
, androidx.activity:activity-compose:1.5.0
và androidx.activity:activity-ktx:1.5.0
. Phiên bản 1.5.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.4.0
- ComponentDialog –
ComponentDialog
là một lớp con củaDialog
, bao gồm mộtOnBackPressedDispatcher
sẽ được gọi khi người dùng nhấn nút quay lại của hệ thống và hiển thị hộp thoại. Một điều quan trọng là lớp con này cũng đặtViewTreeOnBackPressedDispatcherOwner
, cho phép các thành phần hiển thị truy xuất trình điều phối chính xác theo một cách tổng quát cho dù tệp đó có trongComponentActivity
hayComponentDialog
. - Giao diện gọi lại –
ComponentActivity
hiện triển khai một tập hợp các giao diện gọi lại mô-đun có thể dùng thay cho các lệnh gọi lạiActivity
. Những giao diện này bao gồm:OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- Tích hợp CreateExtras –
ComponentActivity
hiện có khả năng cung cấp trạng thái không có trạng tháiViewModelProvider.Factory
quaCreationExtras
của Vòng đời2.5.0
.
Các thay đổi khác
- Hàm khởi tạo không có tham số cho
ActivityResultContracts.CreateDocument
đã không còn được dùng và thay thế bằng một hàm khởi tạo mới sử dụng loại mime cụ thể (ví dụ: "image/png") theo yêu cầu củaIntent.ACTION_CREATE_DOCUMENT
.
Phiên bản 1.5.0-rc01
Ngày 11 tháng 5 năm 2022
androidx.activity:activity:1.5.0-rc01
, androidx.activity:activity-compose:1.5.0-rc01
và androidx.activity:activity-ktx:1.5.0-rc01
được phát hành mà không có thay đổi nào từ kể phiên bản 1.5.0-beta01. Phiên bản 1.5.0-rc01 bao gồm bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta01
Ngày 20 tháng 4 năm 2022
Phát hành androidx.activity:activity:1.5.0-beta01
, androidx.activity:activity-compose:1.5.0-beta01
và androidx.activity:activity-ktx:1.5.0-beta01
. Phiên bản 1.5.0-beta01 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Hoạt động bây giờ phụ thuộc vào Vòng đời
2.4.0-beta01
.
Phiên bản 1.5.0-alpha05
Ngày 6 tháng 4 năm 2022
Phát hành androidx.activity:activity:1.5.0-alpha05
, androidx.activity:activity-compose:1.5.0-alpha05
và androidx.activity:activity-ktx:1.5.0-alpha05
. Phiên bản 1.5.0-alpha05 bao gồm các thay đổi sau.
Sửa lỗi
- Giờ đây,
onPanelClosed()
củaComponentActivity
cũng gọi cho lớp cấp trênonPanelClosed()
, điều này khắc phục sự cố không gọi được phương thứconContextMenuClosed
. (Ib6f77)
Phiên bản 1.5.0-alpha04
Ngày 23 tháng 3 năm 2022
Phát hành androidx.activity:activity:1.5.0-alpha04
, androidx.activity:activity-compose:1.5.0-alpha04
và androidx.activity:activity-ktx:1.5.0-alpha04
. Phiên bản 1.5.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
SavedStateViewFactory
hiện hỗ trợ việc sử dụngCreationExtras
ngay cả khi được khởi tạo bằngSavedStateRegistryOwner
. Nếu bạn cung cấp thông số bổ sung, các đối số đã khởi tạo sẽ bị bỏ qua. (I6c43b, b/224844583)
Phiên bản 1.5.0-alpha03
Ngày 23 tháng 2 năm 2022
Phát hành androidx.activity:activity:1.5.0-alpha03
, androidx.activity:activity-compose:1.5.0-alpha03
và androidx.activity:activity-ktx:1.5.0-alpha03
. Phiên bản 1.5.0-alpha03 bao gồm các thay đổi sau.
Thay đổi API
- Bây giờ, bạn có thể chuyển
CreationExtras
vào hàmby viewModels()
hoạt động (I6a3e6, b/217600303)
Phiên bản 1.5.0-alpha02
Ngày 9 tháng 2 năm 2022
Phát hành androidx.activity:activity:1.5.0-alpha02
, androidx.activity:activity-compose:1.5.0-alpha02
và androidx.activity:activity-ktx:1.5.0-alpha02
. Phiên bản 1.5.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
ComponentActivity
hiện triển khai giao diệnOnPictureInPictureModeChangedProvider
để cho phép mọi thành phần nhận các sự kiện thay đổi chế độ hình trong hình. (I9f567)ComponentActivity
nay triển khai giao diệnOnMultiWindowModeChangedProvider
để cho phép mọi thành phần nhận được các sự kiện thay đổi chế độ nhiều cửa sổ. (I62d91)
Phiên bản 1.5.0-alpha01
Ngày 26 tháng 1 năm 2022
Phát hành androidx.activity:activity:1.5.0-alpha01
, androidx.activity:activity-compose:1.5.0-alpha01
và androidx.activity:activity-ktx:1.5.0-alpha01
. Phiên bản 1.5.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
ComponentActivity
nay tích hợp với ViewModel CreatorsExtras, được giới thiệu là một phần của Vòng đời2.5.0-alpha01
. (Ie7e00, b/207012584)- Thêm
ComponentDialog
, một lớp con củaDialog
bao gồmOnBackPressedDispatcher
sẽ được gọi khi người dùng nhấn nút quay lại của hệ thống khi hộp thoại hiển thị. Một điều quan trọng là lớp con này cũng đặtViewTreeOnBackPressedDispatcherOwner
, cho phép các thành phần hiển thị truy xuất trình điều phối chính xác theo một cách tổng quát cho dù tệp đó có trongComponentActivity
hayComponentDialog
. (I8a1bc) ComponentActivity
nay triển khai giao diệnOnNewIntentProvider
mới để cho phép mọi thành phần nhận được những sự kiện này. (If1f8b)ComponentActivity
nay triển khai giao diệnOnConfigurationChangedProvider
mới để cho phép mọi thành phần nhận được những sự kiện này. (If623b)ComponentActivity
nay triển khai giao diệnOnTrimMemoryProvider
mới để cho phép mọi thành phần nhận các sự kiện này. (Ia9295)
Thay đổi API
- Hàm khởi tạo không có tham số cho
ActivityResultContracts.CreateDocument
đã không còn được dùng và thay thế bằng một hàm khởi tạo mới sử dụng loại mime cụ thể (ví dụ:"image/png"
) theo yêu cầu củaIntent.ACTION_CREATE_DOCUMENT
. (I2bec6) OnBackPressedDispatcherOwner
liên kết với một thành phần hiển thị hiện có thể được truy xuất quaViewTreeOnBackPressedDispatcherOwner
, thay vì dựa vào việc truyềnContext
. (I74685)
Sửa lỗi
- Khắc phục sự cố khi truy cập vào
ViewModel
lần đầu tiên từ lệnh gọi lạiregisterForActivityResult()
hoặc lệnh gọi lại đếnLifecycleObserver
Thêm như một phần củainit
củaComponentActivity
, (Ife83f)
Phiên bản 1.4.0
Phiên bản 1.4.0
Ngày 27 tháng 10 năm 2021
Phát hành androidx.activity:activity:1.4.0
, androidx.activity:activity-compose:1.4.0
và androidx.activity:activity-ktx:1.4.0
. Phiên bản 1.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.3.0
- AndroidX
ComponentActivity
hiện triển khai giao diệnMenuHost
. Thao tác này cho phép mọi thành phần thêm các mục trong trình đơn vàoActionBar
bằng cách thêm một bản saoMenuProvider
vào hoạt động. Bạn có thể thêm mỗiMenuProvider
bằng mộtLifecycle
với khả năng tự động kiểm soát chế độ hiển thị của các mục trong trình đơn đó dựa trên trạng tháiLifecycle
, đồng thời xử lý việc xoáMenuProvider
khiLifecycle
bị huỷ. - Lớp
ActivityResultContract
đã được viết lại trong Kotlin để đảm bảo rằng các nhà phát triển viết hợp đồng tuỳ chỉnh trong Kotlin có thể xác định giá trị rỗng chính xác cho các lớp đầu vào và đầu ra của họ. - Lớp
ActivityResultContracts
và các hợp đồng của lớp này đã được viết lại trong Kotlin để đảm bảo thuộc tính rỗng phù hợp.
Phiên bản 1.4.0-rc01
Ngày 13 tháng 10 năm 2021
Phát hành androidx.activity:activity:1.4.0-rc01
, androidx.activity:activity-compose:1.4.0-rc01
và androidx.activity:activity-ktx:1.4.0-rc01
. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
ActivityResultRegistry
sẽ không trả về kết quả choActivityResultCallback
nữa khi lệnh gọilaunch
gửi bất kỳException
nào. (If4f91, b/200845664)
Phiên bản 1.4.0-beta01
Ngày 29 tháng 9 năm 2021
Phát hành androidx.activity:activity:1.4.0-beta01
, androidx.activity:activity-compose:1.4.0-beta01
và androidx.activity:activity-ktx:1.4.0-beta01
. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Đã cố định loại cho
ActivityResultContracts.OpenMultipleDocuments
vàActivityResultContracts.GetMultipleContents
dẫn đến việc sử dụng loại đầu ra làList<? extends Uri>
khi sử dụng mã từ ngôn ngữ lập trình Java. (If71de) - Hằng số công khai trong các lớp
ActivityResultContracts.StartActivityForResult
,ActivityResultContracts.StartIntentSenderForResult
vàActivityResultContracts.RequestMultiplePermissions
hiện có thể truy cập được khi sử dụng Kotlin thông qua các đối tượngCompanion
công khai. (aosp/1832555)
Các bản cập nhật tài liệu
- Thông báo về việc ngừng sử dụng những API này hiện được xử lý bởi Activity Result API, cụ thể là
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
vàonRequestPermissionsResult
, đã được mở rộng với nhiều chi tiết hơn. (cce80f)
Phiên bản 1.4.0-alpha02
Ngày 15 tháng 9 năm 2021
Phát hành androidx.activity:activity:1.4.0-alpha02
, androidx.activity:activity-compose:1.4.0-alpha02
và androidx.activity:activity-ktx:1.4.0-alpha02
. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Cấu phần phần mềm
activity-compose
hiện chứa lỗi tìm mã nguồnLaunchDuringComposition
khiến bạn không thể gọi phương thứclaunch
củaActivityResultLauncher
như một phần của cấu trúc vì cấu trúc không nên có hiệu ứng phụ. Sử dụng API để xử lý các tác dụng phụ. (7c2bbe, b/191347220)
Thay đổi API
- Lớp
ActivityResultContract
đã được viết lại trong Kotlin để đảm bảo rằng các nhà phát triển viết hợp đồng tuỳ chỉnh trong Kotlin có thể xác định thuộc tính rỗng chính xác cho các lớp đầu vào và đầu ra của họ. (I8a8f5) - Lớp
ActivityResultContracts
và các hợp đồng của lớp này đã được viết lại trong Kotlin để đảm bảo thuộc tính rỗng chính xác. (I69802)
Phiên bản 1.4.0-alpha01
Ngày 1 tháng 9 năm 2021
Phát hành androidx.activity:activity:1.4.0-alpha01
, androidx.activity:activity-compose:1.4.0-alpha01
và androidx.activity:activity-ktx:1.4.0-alpha01
. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- AndroidX
ComponentActivity
hiện triển khai giao diệnMenuHost
. Thao tác này cho phép mọi thành phần thêm các mục trong trình đơn vàoActionBar
bằng cách thêm một bản saoMenuProvider
vào hoạt động. Bạn có thể thêm mỗiMenuProvider
bằng mộtLifecycle
với khả năng tự động kiểm soát chế độ hiển thị của các mục trong trình đơn đó dựa trên trạng tháiLifecycle
, đồng thời xử lý việc xoáMenuProvider
khiLifecycle
bị huỷ. (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)
}
Các thay đổi về hành vi
ActivityResultRegistry
hiện sẽ gửi mộtIllegalStateException
khi cố gắng gọilaunch()
trênActivityResultLauncher
chưa được đăng ký hoặc đã được huỷ đăng ký. (Ida75d, b/192567522)
Đóng góp bên ngoài
Phiên bản 1.3.1
Phiên bản 1.3.1
Ngày 4 tháng 8 năm 2021
Phát hành androidx.activity:activity:1.3.1
, androidx.activity:activity-compose:1.3.1
và androidx.activity:activity-ktx:1.3.1
. Phiên bản 1.3.1 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Activity hiện phụ thuộc vào Kotlin
1.5.21
. - Hiện tại, Activity Compose hoạt động phụ thuộc vào Compose
1.0.1
.
Phiên bản 1.3.0
Phiên bản 1.3.0
Ngày 28 tháng 7 năm 2021
Phát hành androidx.activity:activity:1.3.0
, androidx.activity:activity-compose:1.3.0
và androidx.activity:activity-ktx:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- Cấu phần phần mềm Activity Compose – Cấu phần phần mềm
activity-compose
cung cấp phương thức tiện ích mở rộngsetContent
để lưu trữ Giao diện người dùng Compose của bạn trong một hoạt động và trình bao bọc Compose cụ thể để tương tác với APIComponentActivity
để xử lý nút quay lại hệ thống và Activity Result API. Hãy xem tài liệu để biết thêm chi tiết. - Hợp đồng CaptureVideo –
CaptureVideo
ActivityResultContract
sẽ thay thế hợp đồngTakeVideo
hiện không được dùng nữa và trả về một Boolean thành công hoạt động trên nhiều ứng dụng máy ảnh. - Theo dõi lượt xem gợi ý trong Hình trong hình: Người dùng
activity-ktx
hiện có thể sử dụng phương thức mở rộngtrackPipAnimationHintView
trênActivity
để tự động tạo lạiPictureInPictureParams
bằng vị trí mới của thành phần hiển thị khi nó thay đổi vị trí tương ứng với cửa sổ.
Phiên bản 1.3.0-rc02
Ngày 14 tháng 7 năm 2021
Phát hành androidx.activity:activity:1.3.0-rc02
, androidx.activity:activity-compose:1.3.0-rc02
và androidx.activity:activity-ktx:1.3.0-rc02
. Phiên bản 1.3.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Các lệnh gọi lại
ActivityResultRegistry
nay được lưu và khôi phục đúng cách để các lệnh gọi lại không bị trùng lặp trong savedState. (I97816, b/191893160)
Phiên bản 1.3.0-rc01
Ngày 1 tháng 7 năm 2021
Phát hành androidx.activity:activity:1.3.0-rc01
, androidx.activity:activity-compose:1.3.0-rc01
và androidx.activity:activity-ktx:1.3.0-rc01
mà không có thay đổi nào từ 1.3.0-beta02
. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta02
Ngày 16 tháng 6 năm 2021
Phát hành androidx.activity:activity:1.3.0-beta02
, androidx.activity:activity-compose:1.3.0-beta02
và androidx.activity:activity-ktx:1.3.0-beta02
. Phiên bản beta 1.3.0-beta02 bao gồm các thay đổi sau.
Cập nhật activity-compose
để tuỳ thuộc vào Compose 1.0.0-beta09
. androidx.compose.ui:ui-test-junit4
nay có phần phụ thuộc thời gian biên dịch vào activity-compose
.
Phiên bản 1.3.0-beta01
Ngày 2 tháng 6 năm 2021
Phát hành androidx.activity:activity:1.3.0-beta01
, androidx.activity:activity-compose:1.3.0-beta01
và androidx.activity:activity-ktx:1.3.0-beta01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Thay đổi API
- Phương thức
@Composable registerForActivityResult()
không dùng nữa trước đó đã bị xoá. Vui lòng sử dụngrememberLauncherForActivityResult()
. (Ic39d3)
Phiên bản 1.3.0-alpha08
Ngày 18 tháng 5 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha08
, androidx.activity:activity-compose:1.3.0-alpha08
và androidx.activity:activity-ktx:1.3.0-alpha08
. Phiên bản 1.3.0-alpha08 bao gồm các thay đổi sau.
Tính năng mới
CaptureVideo
ActivityResultContract
mới sẽ trả về một boolean choActivityResultCallback
của bạn, cho biết video của bạn đã được lưu thành công vào URI đã cho hay chưa. Thao tác này sẽ thay thế hợp đồngTakeVideo
hiện không được dùng nữa vì các ứng dụng máy ảnh rất hiếm khi được hỗ trợ để trả về một bitmap thu nhỏ, khiến kết quả không hữu ích. (Ie21f2, b/185938070)- Thêm API
Activity#setPipAnimationHintView
mới để cập nhật gợi ý nguồn của PipParams mỗi khi thành phần hiển thị di chuyển. (I9063d)
Thay đổi API
- Hàm
rememberLauncherForActivityResult
hiện trả về một trình chạy không còn sử dụng việc đăng ký hàmunregister()
nữa. và huỷ đăng ký trình chạy sẽ dorememberLauncherForActivityResult
xử lý tự động. (I2443e)
Khả năng tương thích với ứng dụng Compose
androidx.activity:activity-compose:1.3.0-alpha08
chỉ tương thích với ứng dụng Compose phiên bản1.0.0-beta07
trở lên.
Phiên bản 1.3.0-alpha07
Ngày 21 tháng 4 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha07
, androidx.activity:activity-compose:1.3.0-alpha07
và androidx.activity:activity-ktx:1.3.0-alpha07
. Phiên bản 1.3.0-alpha07 bao gồm các thay đổi sau.
Sửa lỗi
rememberLauncherForActivityResult
hiện sẽ trả về tệp tham chiếu ổn định cho cùng một bản saoActivityResultLauncher
ngay cả khi hợp đồng thay đổi do các bản tái cấu trúc. (Id2d6d)- Việc sử dụng các phiên bản Mảnh (Fragment) không ổn định ở trên
1.3.0
sẽ không còn gây ra lỗi mã nguồn nhận dạng sai cho biết bạn nên sử dụng1.3.0
. (aosp/1670206, b/184847092)
Phiên bản 1.3.0-alpha06
Ngày 7 tháng 4 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha06
, androidx.activity:activity-compose:1.3.0-alpha06
và androidx.activity:activity-ktx:1.3.0-alpha06
. Phiên bản 1.3.0-alpha06 bao gồm các thay đổi sau.
Thay đổi API
- API
registerForActivityResult()
đã được đổi tên thànhrememberLauncherForActivityResult()
để cho biết rõ hơn làActivityResultLauncher
được trả về là một đối tượng được quản lý mà được hệ thống ghi nhớ thay mặt bạn. Nếu bạn cố gắng gọi chounregister
,ActivityResultLauncher
được trả về sẽ gặp lỗi. (I2bb6d) LocalOnBackPressedDispatcherOwner.current
vàLocalActivityResultRegistryOwner.current
hiện trả về một giá trị rỗng để xác định rõ hơn liệu giá trị đó có trong cấu trúc hiện tại hay không. Các API yêu cầu các API đó, chẳng hạn nhưBackHandler
vàrememberLauncherForActivityResult()
, tương ứng, sẽ hiển thị lỗi mô tả cụ thể hơn nếu không tìm thấy chủ sở hữu cơ sở.NavHost
hiện hoạt động ngay cả khi không tìm thấyOnBackPressedDispatcherOwner
, trường hợp này xảy ra khi bạn xem trướcNavHost
. (I7d8b4)
Sửa lỗi
BackHandler
hiện sẽ chặn đúng cách các lượt nhấn trở lại trong trường hợp Hoạt động làSTOPPED
, sau đó làSTARTED
một lần nữa, và các lệnh gọi lại khác đã được thêm vào với một Chủ sở hữu vòng đời. (I71de6, b/182284739)- Nếu bạn sử dụng phần mở rộng của phương thức
launch()
cóActivityResultContract
tuỳ chỉnh có giá trị nhậpUnit
sẽ không còn gây raNullPointerException
(I76282, b/183837954)
Phiên bản 1.3.0-alpha05
Ngày 24 tháng 3 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha05
, androidx.activity:activity-compose:1.3.0-alpha05
và androidx.activity:activity-ktx:1.3.0-alpha05
. Phiên bản 1.3.0-alpha05 bao gồm các thay đổi sau.
Sửa lỗi
- Trong phần Hoạt động 1.2.2: Khắc phục sự cố trong quá trình kiểm tra mã nguồn của
InvalidFragmentVersionForActivityResult
dẫn đến kết quả dương tính giả khi sử dụng Fragment 1.3.1 trở lên. (I54da1, b/182388985) - Trong phần Hoạt động 1.2.2:
ComponentActivity
hiện tránhClassNotFoundException
khi chạy mộtIntent
từActivityResultContract
mà trước đây được giữ lại dưới dạng bổ sung trong mộtIntent
khác , (Ieff05, b/182906230)
Thông tin cập nhật về phần phụ thuộc
- Trong phần Hoạt động 1.2.2: Hoạt động bây giờ phụ thuộc vào Vòng đời
2.3.1
.
Phiên bản 1.3.0-alpha04
Ngày 10 tháng 3 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha04
, androidx.activity:activity-compose:1.3.0-alpha04
và androidx.activity:activity-ktx:1.3.0-alpha04
. Phiên bản 1.3.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
- Trong phần Hoạt động
1.2.1
:RequestMultiplePermissions
hiện sẽ luôn trả về kết quả cho mọi quyền mà bạn yêu cầu thay vì chỉ các quyền chưa có trước đây. (I50bc3, b/180884668) - Trong phần Hoạt động
1.2.1
:ActivityResultRegistry
hiện đảm bảo rằng các yêu cầulaunch()
đang xử lý sẽ trả về kết quả ngay cả khi bạnunregister()
, sau đóregister()
lần nữa bằng cùng một khoá , (I9ef34, b/181267562) - Activity Compose không còn thêm phần phụ thuộc thử nghiệm vào đường dẫn lớp thời gian chạy. (Ifd8b3)
- Khắc phục sự cố với
BackHandler
, trong đó lambdaonBack
đã đặt trước đó vẫn được sử dụng sau khi được tạo lại. (8eb5eb)
Phiên bản 1.3.0-alpha03
Ngày 24 tháng 2 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha03
, androidx.activity:activity-compose:1.3.0-alpha03
và androidx.activity:activity-ktx:1.3.0-alpha03
. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- Hiện có hàm
registerForActivityResult
Cấu trúc có thể kết hợp để nhận kết quả từ các hoạt động trong các cấu trúc có thể kết hợp. (Ia7851, b/172690553)
Thay đổi API
LocalOnBackPressedDispatcherOwner
nay có một hàmprovides
mà bạn có thể dùng vớiCompositionLocalProvider
, thay thế APIasProvidableCompositionLocal()
. (I45d24)
Phiên bản 1.3.0-alpha02
Ngày 10 tháng 2 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha02
, androidx.activity:activity-compose:1.3.0-alpha02
và androidx.activity:activity-ktx:1.3.0-alpha02
. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố trong Activity Compose
1.3.0-alpha01
gây ra ngoại lệNoSuchMethodError: No static method setContent
khi sử dụng Compose1.0.0-alpha12
. Tất cả người dùng Compose phải phụ thuộc vào1.3.0-alpha02
trở lên. (b/179911234)
Thay đổi API
- Bạn có thể sử dụng API
BackHandler
để cho phép một cấu trúc có thể kết hợp chặn nút quay lại của hệ thống. (I58ed5, b/172154006)
Phiên bản 1.3.0-alpha01
Ngày 10 tháng 2 năm 2021
Phát hành androidx.activity:activity:1.3.0-alpha01
, androidx.activity:activity-compose:1.3.0-alpha01
và androidx.activity:activity-ktx:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Cấu phần phần mềm mới của
activity-compose
cung cấp trình trợ giúp cụ thể dành cho Jetpack Compose dành cho API cụ thểandroidx.activity
.ComponentActivity.setContent
đã di chuyển từandroidx.compose.ui.platform.setContent
sangandroidx.activity.compose.setContent
. (Icf416)
Các vấn đề đã biết
- Việc sử dụng Activity Compose
1.3.0-alpha01
và các thư viện phụ thuộc vào thanh phần này, chẳng hạn nhưandroidx.compose.ui:ui-test-junit4:1.0.0-alpha12
sẽ dẫn đến trường hợp ngoại lệ làNoSuchMethodError: No static method setContent
. (b/179911234)
Phiên bản 1.2.4
Phiên bản 1.2.4
Ngày 21 tháng 7 năm 2021
Phát hành androidx.activity:activity:1.2.4
và androidx.activity:activity-ktx:1.2.4
. Phiên bản 1.2.4 bao gồm các thay đổi sau.
Sửa lỗi
- Trong phần Activity
1.3.0-rc02
: Các lệnh gọi lại ActivityActivityRegistry hiện được lưu và khôi phục đúng cách. Nhờ đó, các lệnh gọi lại sẽ không bị trùng lặp trong savedState. (I97816, b/191893160)
Phiên bản 1.2.3
Phiên bản 1.2.3
Ngày 5 tháng 5 năm 2021
Phát hành androidx.activity:activity:1.2.3
và androidx.activity:activity-ktx:1.2.3
. Phiên bản 1.2.3 bao gồm các thay đổi sau.
Sửa lỗi
- Nếu bạn sử dụng phần mở rộng của phương thức
launch()
cóActivityResultContract
tuỳ chỉnh có giá trị nhậpUnit
sẽ không còn gây raNullPointerException
(I76282, b/183837954) - Khắc phục lỗi tìm mã nguồn dương tính giả cho biết bạn nên sử dụng Mảnh
1.3.0
khi sử dụng ảnh chụp nhanh, alpha, beta hoặc bản dựng RC của phiên bản Mảnh mới hơn. (f4a57e, b/184847092)
Phiên bản 1.2.2
Phiên bản 1.2.2
Ngày 24 tháng 3 năm 2021
Phát hành androidx.activity:activity:1.2.2
và androidx.activity:activity-ktx:1.2.2
. Phiên bản 1.2.2 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố trong quá trình kiểm tra ãm nguồn
InvalidFragmentVersionForActivityResult
dẫn đến dương tính giả khi sử dụng Fragment 1.3.1 trở lên. (I54da1, b/182388985) ComponentActivity
hiện tránhClassNotFoundException
khi khởi chạyIntent
từActivityResultContract
mà trước đó đã được giữ lại làm một mục bổ sung trongIntent
khác. (Ieff05, b/182906230)
Thông tin cập nhật về phần phụ thuộc
- Hoạt động bây giờ phụ thuộc vào Vòng đời
2.3.1
.
Phiên bản 1.2.1
Phiên bản 1.2.1
Ngày 10 tháng 3 năm 2021
Phát hành androidx.activity:activity:1.2.1
và androidx.activity:activity-ktx:1.2.1
. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Sửa lỗi
RequestMultiplePermissions
hiện luôn trả về kết quả cho tất cả các quyền đã yêu cầu thay vì chỉ các quyền chưa được cấp trước đó. (I50bc3, b/180884668)- Hiện tại,
ActivityResultRegistry
đảm bảo rằng các yêu cầulaunch()
đang được xử lý sẽ trả về kết quả ngay cả khi bạnunregister()
và sau đó làregister()
một lần nữa bằng cùng một khoá. (I9ef34, b/181267562)
Phiên bản 1.2.0
Phiên bản 1.2.0
Ngày 10 tháng 2 năm 2021
Phát hành androidx.activity:activity:1.2.0
và androidx.activity:activity-ktx:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Những thay đổi lớn kể từ phiên bản 1.1.0
- Activity Result API:
ComponentActivity
hiện cung cấpActivityResultRegistry
cho phép bạn xử lý luồngstartActivityForResult()
+onActivityResult()
cũng nhưrequestPermissions()
+onRequestPermissionsResult()
mà không cần ghi đè phương thức trong Hoạt động hoặc Mảnh của bạn, giúp tăng độ an toàn của loại thông quaActivityResultContract
và cung cấp nội dung hấp dẫn để thử nghiệm luồng này. Hãy xem phần cập nhật Nhận kết quả từ một hoạt động.
ContextAware
:ComponentActivity
hiện triển khaiContextAware
, cho phép bạn thêm một hoặc nhiều bản saoOnContextAvailableListener
mà sẽ nhận được lệnh gọi lại trước cơ sởActivity.onCreate()
.- Tiện ích Kotlin đang tạm ngưng
withContextAvailable()
cho phép bạn chạy một khối không tạm ngưng khi Ngữ cảnh có sẵn và trả về một kết quả. - API này được
FragmentActivity
sử dụng trong Fragment 1.3.0 để khôi phục trạng thái củaFragmentManager
. Bất kỳ trình nghe nào được thêm vào lớp con củaFragmentActivity
đều sẽ chạy sau trình nghe đó. - API này được
AppCompatActivity
sử dụng trong AppCompat 1.3.0-alpha02 trở lên. Bất kỳ trình nghe nào được thêm vào lớp con củaAppCompatActivity
đều sẽ chạy sau trình nghe đó.
- Tiện ích Kotlin đang tạm ngưng
Nhóm hỗ trợ
ViewTree
:ComponentActivity
hiện hỗ trợ các APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
vàViewTreeSavedStateRegistryOwner
mà bạn thêm vào Vòng đời2.3.0
và SavedState1.1.0
sao cho chế độ này sẽ trả về Hoạt động dưới dạngLifecycleOwner
,ViewModelStoreOwner
vàSavedStateRegistryOwner
cho mọi thành phần hiển thị thêm vàoComponentActivity
.
- reportFully Drawn() điều chỉnh cho phiên bản cũ – Phương thức
Activity
củareportFullyDrawn()
đã được điều chỉnh trongComponentActivity
để hoạt động ở tất cả các cấp API, khắc phục sự cố trên API 19 và thêm tính năng theo dõi cho phương thức này cho tất cả các cấp độ API.
Phiên bản 1.2.0-rc01
Ngày 16 tháng 12 năm 2020
Phát hành androidx.activity:activity:1.2.0-rc01
và androidx.activity:activity-ktx:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
ActivityResultRegistry
hiện sẽ luôn khôi phục trạng thái chính xác đã lưu. (Idd56b)- Thêm tính năng theo dõi vào
ComponentActivity.reportFullyDrawn
(Ic7632)
Đóng góp bên ngoài
ComponentActivity
hiện ghi đèreportFullyDrawn()
, cho phép ứng dụng được gọi trên tất cả các cấp API và khắc phục sự cố khi gọi phương thức này mà không có sự cho phép phù hợp của hệ thống trên các thiết bị API 19. Cảm ơn Simon Schiller! (b/163239764, #103)
Phiên bản 1.2.0-beta02
Ngày 2 tháng 12 năm 2020
Phát hành androidx.activity:activity:1.2.0-beta02
và androidx.activity:activity-ktx:1.2.0-beta02
. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục vấn đề trong đó Activity Result API không chờ Vòng đời là
STARTED
trước khi cung cấp kết quả khi được đăng ký vớiLifecycle
. (I109ea)
Đóng góp bên ngoài
- Cập nhật tài liệu cho
launch()
để nêu rõ rằng ứng dụng có thể gửi mộtActivityNotFoundException
. Cảm ơn Michał Zieliński! (aosp/1493580)
Phiên bản 1.2.0-beta01
Ngày 1 tháng 10 năm 2020
Phát hành androidx.activity:activity:1.2.0-beta01
và androidx.activity:activity-ktx:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
ActivityResultRegistry
hiện tạo ngẫu nhiên các số nguyên cho đến khi tìm thấy một số nguyên chưa dùng để sử dụng làm mã yêu cầuregister()
, do đó ngăn chặn tình trạng tràn số nguyên có thể xảy ra do mã yêu cầu tăng lên. (b/168779518)Lifecycle
người quan sát sẽ bị xoá đúng cách khi gọiunregister()
trênActivityResultLauncher
. (b/165608393)
Các thay đổi về hành vi
ActivityResultRegistry
hiện đang gửi mộtIllegalStateException
khi đang cố gọiregister()
bằng mộtLifecycleOwner
màLifecycle
của nó đã đạtSTARTED
. (b/165435866)
Tài liệu được cập nhật
- Tài liệu
ContextAware
liên kết vớiLifecycleOwner
để đánh dấu lệnh gọi lạiLifecycle
là nơi thích hợp để tạo và huỷ sự kiện. (aosp/1414152)
Phiên bản 1.2.0-alpha08
Ngày 19 tháng 8 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha08
và androidx.activity:activity-ktx:1.2.0-alpha08
. Phiên bản 1.2.0-alpha08 bao gồm các thay đổi sau.
Tính năng mới
ComponentActivity
hiện triển khaiContextAware
, cho phép bạn thêm một hoặc nhiều bản saoOnContextAvailableListener
mà sẽ nhận được lệnh gọi lại trướcActivity.onCreate()
cơ sở. (b/161390636)- Tiện ích Kotlin đang tạm ngưng
withContextAvailable()
cho phép bạn chạy một khối không tạm ngưng khi Ngữ cảnh có sẵn và trả về một kết quả. (I8290c) - API này được
FragmentActivity
sử dụng trong Fragment 1.3.0-alpha08 để khôi phục trạng thái củaFragmentManager
. Bất kỳ trình nghe nào được thêm vào lớp con củaFragmentActivity
đều sẽ chạy sau trình nghe đó. (I513da) - API này được
AppCompatActivity
sử dụng trong AppCompat 1.3.0-alpha02. Bất kỳ trình nghe nào được thêm vào lớp con củaAppCompatActivity
đều sẽ chạy sau trình nghe đó. (I513da)
- Tiện ích Kotlin đang tạm ngưng
Sửa lỗi
- Khắc phục vấn đề với tính năng kiểm tra lỗi mã nguồn
ActivityResultFragmentVersionDetector
khiến tính năng này bị lỗi khi sử dụng Lint 27.1.0 trở lên. (b/162155191)
Phiên bản 1.2.0-alpha07
Ngày 22 tháng 7 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha07
và androidx.activity:activity-ktx:1.2.0-alpha07
. Phiên bản 1.2.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tính năng kiểm tra lỗi mã nguồn
InvalidFragmentVersionForActivityResult
để xác minh rằng bạn đang sử dụngFragment1.3.0-alpha07
khi sử dụng Activity Result API để tránh gặp lỗi trong thời gian chạy do các vấn đề liên quan đến "mã yêu cầu không hợp lệ" và các yêu cầu cấp quyền không hoạt động do sử dụng phiên bản Fragment cũ. (b/152554847)
Đóng góp bên ngoài
- Sửa
ArrayIndexOutOfBoundsException
khi phân tích kết quả của hợp đồng Kết quả hoạt độngRequestPermission
. (I8f9e3, b/161057605)
Phiên bản 1.2.0-alpha06
Ngày 10 tháng 6 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha06
và androidx.activity:activity-ktx:1.2.0-alpha06
. Phiên bản 1.2.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Bây giờ, bạn có thể huỷ cấu trúc lớp
ActivityResult
trong kotlin để truy cập trực tiếp vàorequestCode
vàintent
. (b/157212935) ActivityResultLauncher
hiện cho phép bạn nhậnActivityResultContract
dùng để đăng ký trình chạy. (b/156875743)
Thay đổi API
- Thay đổi có thể gây lỗi: Phương thức
invoke()
trênActivityResultRegistry
đã được đổi tên thànhonLaunch()
. (b/157496491) - Hợp đồng
OpenMultipleDocuments
hiện trả về danh sách trống thay vìnull
cho lệnh gọi lại đã đăng ký nếu không trả về kết quả nào. (b/157348014)
Phiên bản 1.2.0-alpha05
Ngày 20 tháng 5 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha05
và androidx.activity:activity-ktx:1.2.0-alpha05
. Phiên bản 1.2.0-alpha05 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tuỳ chọn hỗ trợ
ViewTreeViewModelStoreOwner
từ Lifecycle2.3.0-alpha03
vàViewTreeSavedStateRegistryOwner
từ SavedState1.1.0-alpha01
khi sử dụngView
trong mộtComponentActivity
. (aosp/1297993, aosp/1300264)
Thay đổi API
- Hợp đồng
TakePicture
hiện trả vềboolean
cho biết thành công chứ không phải là hình thu nhỏBitmap
vì tính năng này hiếm khi được ứng dụng máy ảnh hỗ trợ khi ghi hình vàoUri
được cung cấp. (b/154302879) - Các tiện ích
invoke()
trênActivityResultLauncher
đã được xoá và sử dụnglaunch()
một cách rõ ràng để cho biết rõ hơn đây là các hoạt động không đồng bộ. Các tiện ích Kotlin cholaunch
đã được thêm vào góiandroidx.activity.result
choActivityResultLauncher<Void>
vàActivityResultLauncher<Unit>
. Điều này giúp loại bỏ nhu cầu chuyển vàonull
hoặcUnit
tương ứng, phản ánh hành vi đó từ các tiện íchinvoke()
trước đó. (aosp/1304674, aosp/1304675) - Các phương thức
IntentSenderRequest.Builder
chosetFlagsMask()
vàsetFlagsValues()
đã được kết hợp thành một phương thứcsetFlags()
duy nhất. (aosp/1302111)
Sửa lỗi
- Khi đăng ký
ActivityResultCallback
vớiLifecycleOwner
, hãy khắc phục vấn đề là lệnh gọi lại sẽ được kích hoạt trước khi trạng thái đạtSTARTED
. (aosp/1309744)
Các thay đổi về hành vi
ActivityResultRegistry
hiện tạo các mã yêu cầu, bắt đầu từ0xFFFF
thay vì0
, qua đó ngăn quá trình trùng lặp khi sử dụngstartActivityForResult()
hoặcrequestPermissions()
trong một hoạt động. (aosp/1302324)
Phiên bản 1.2.0-alpha04
Ngày 29 tháng 4 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha04
và androidx.activity:activity-ktx:1.2.0-alpha04
. Phiên bản 1.2.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
- Thêm hợp đồng có thể gọi startIntentSenderForResult vào ActivityResult API. (b/153007517)
Thay đổi API
- Phương thức
prepareCall()
đã được đổi tên thànhregisterForActivityResult()
, cả trênComponentActivity
tại đây và trong Fragment1.3.0-alpha04
. (aosp/1278717) - Các hợp đồng
GetContents
,OpenDocuments
vàRequestPermissions
lần lượt được đổi tên thànhGetMultipleContents
,OpenMultipleDocuments
vàRequestMultiplePermissions
. (aosp/1280161) ComponentActivity
hiện triển khai giao diệnActivityResultRegisteryOwner
. (aosp/1290888)- – API
startActivityForResult()
/onActivityResult()
vàonRequestPermissionsResult()
trênComponentActivity
không còn được dùng nữa. Vui lòng sử dụng Activity Result API. (b/154751887)
Sửa lỗi
- Khi sử dụng hợp đồng
GetMultipleContents
vàOpenMultipleDocuments
, đồng thời chọn một mục đơn lẻ, giờ đây, hệ thống sẽ trả về chính xác lệnh gọi lại của bạn. (b/152941153)
Phiên bản 1.2.0-alpha03
Ngày 1 tháng 4 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha03
và androidx.activity:activity-ktx:1.2.0-alpha03
. Phiên bản 1.2.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- Thêm hợp đồng
TakeVideo
,PickContact
,GetContent
,GetContents
,OpenDocument
,OpenDocuments
,OpenDocumentTree
vàCreateDocument
vào tập hợp các dữ liệu hợp đồng được tạo sẵn doActivityResultContracts
cung cấp. (aosp/1262482, aosp/1266916, aosp/1268960) - Activity Result API hiện hỗ trợ khởi chạy một hoạt động cho kết quả với một
ActivityOptionsCompat
(không bắt buộc). (b/151860054)
Thay đổi API
- Hợp đồng
TakePicture
hiện cung cấp dữ liệu đầu vàoUri
để lưu trữ hình ảnh. Hợp đồng trước đó không nhận bất kỳ thông tin đầu vào nào đã được đổi tên thànhTakePicturePreview
. (aosp/1262482) - Phương thức
registerActivityResultCallback()
trênActivityResultRegistry
đã được đổi tên thànhregister()
. (aosp/1267621) - Phương thức
dispose()
trênActivityResultLauncher
đã được đổi tên thànhunregister()
vàunregisterResultCallback()
trênActivityResultRegistry
đã bị xoá. (aosp/1267621) - Phương thức
createIntent()
củaActivityResultContact
giờ đây sẽ lấyContext
ngoài thông tin đầu vào để có thể tạo Ý định rõ ràng. (aosp/1238800) - Giờ đây,
ActivityResultContract
có thể ghi đègetSynchronousResult()
để cung cấp kết quả mà không cần gọistartActivityForResult
. Việc này được các hợp đồngRequestPermission
vàRequestPermissions
sử dụng để cung cấp chính xác trạng thái "đã cấp" nếu bạn đã cấp các quyền được yêu cầu. (b/151110799) - Hợp đồng
Dial
có sẵn trước đó đã bị xoá vìIntent
không được dùng vớistartActivityForResult()
. (aosp/1266916) - Nhiều API kết quả của hoạt động không được mở rộng hiện là
final
. Các thông tin này bao gồmgetActivityResultRegistry()
, các phương thứcprepareCall()
, tất cả các phương thứcActivityResultRegistry
trừinvoke()
và một số hợp đồng mặc định không hỗ trợ các tiện ích bổ sung không bắt buộc. (b/152439361)
Sửa lỗi
- Khắc phục
NullPointerException
trongActivityResultRegistry
khi cố gắng cung cấp kết quả cho lệnh gọi lại mà chưa được đăng ký lại sau khi thay đổi cấu hình;ActivityResultRegistry
hiện giữ lại các kết quả đang chờ xử lý này và cung cấp các kết quả này khi lệnh gọi lại được đăng ký lại. (b/152137004)
Phiên bản 1.2.0-alpha02
Ngày 18 tháng 3 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha02
và androidx.activity:activity-ktx:1.2.0-alpha02
. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- Sổ đăng ký Kết quả Hoạt động:
ComponentActivity
hiện cung cấp mộtActivityResultRegistry
cho phép bạn xử lý các luồngstartActivityForResult()
+onActivityResult()
cũng nhưrequestPermissions()
+onRequestPermissionsResult()
mà không cần ghi đè phương thức trong phần Hoạt động hoặc Mảnh của bạn, giúp tăng độ an toàn của loại thông quaActivityResultContract
và cung cấp các nội dung hấp dẫn để thử nghiệm những quy trình này. Hãy xem phần cập nhật Nhận kết quả từ một hoạt động. (b/125158199)
Phiên bản 1.2.0-alpha01
Ngày 4 tháng 3 năm 2020
Phát hành androidx.activity:activity:1.2.0-alpha01
và androidx.activity:activity-ktx:1.2.0-alpha01
. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Thêm tính năng hỗ trợ cho API
ViewTreeLifecycleOwner.get(View)
mà được thêm vào trong Vòng đời2.3.0-alpha01
để API này trả lại Hoạt động dưới dạngLifecycleOwner
cho bất kỳ thành phần hiển thị nào thêm trực tiếp vào Hoạt động. (aosp/1182955)
Sửa lỗi
- Khắc phục lỗi hồi quy được giới thiệu trong Activity
1.1.0
khi chạy trên các phiên bản cũ hơn của nền tảng màonBackPressed()
sẽ gây raIllegalStateException
do lỗi trongandroid.app.FragmentManager
. (b/146290338)
Phiên bản 1.1.0
Phiên bản 1.1.0
Ngày 22 tháng 1 năm 2020
Phát hành androidx.activity:activity:1.1.0
. Phiên bản 1.1.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.0.0
- Tích hợp Vòng đời ViewModel SavedState:
SavedStateViewModelFactory
hiện là trạng thái ban đầu mặc định được dùng khi sử dụngby viewModels()
, hàm khởi tạoViewModelProvider
hoặcViewModelProviders.of()
vớiComponentActivity
hoặc lớp con của nó.
Phiên bản 1.1.0-rc03
Ngày 4 tháng 12 năm 2019
Phát hành androidx.activity:activity:1.1.0-rc03
và androidx.activity:activity-ktx:1.1.0-rc03
. Phiên bản 1.1.0-rc03 bao gồm các thay đổi sau.
Các thay đổi về phần phụ thuộc
- Hoạt động bây giờ phụ thuộc vào Lifecycle
2.2.0-rc03
và Lifecycle ViewModel SavedState1.0.0-rc03
.
Phiên bản 1.1.0-rc02
Ngày 7 tháng 11 năm 2019
Phát hành androidx.activity:activity:1.1.0-rc02
và androidx.activity:activity-ktx:1.1.0-rc02
. Phiên bản 1.1.0-rc02 bao gồm các thay đổi sau.
Các thay đổi về phần phụ thuộc
- Hoạt động bây giờ phụ thuộc vào vòng đời
2.2.0-rc02
.
Phiên bản 1.1.0-rc01
Ngày 23 tháng 10 năm 2019
androidx.activity:activity:1.1.0-rc01
và androidx.activity:activity-ktx:1.1.0-rc01
được phát hành mà không có thay đổi nào từ 1.1.0-beta01
. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.1.0-beta01
Ngày 9 tháng 10 năm 2019
Phát hành androidx.activity:activity:1.1.0-beta01
và androidx.activity:activity-ktx:1.1.0-beta01
. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Các thay đổi về phần phụ thuộc
- Hoạt động hiện tại phụ thuộc vào SavedState 1.0.0 ổn định.
Phiên bản 1.1.0-alpha03
Ngày 5 tháng 9 năm 2019
Phát hành androidx.activity:activity:1.1.0-alpha03
và androidx.activity:activity-ktx:1.1.0-alpha03
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
- Hoạt động hiện phụ thuộc vào Core 1.1.0 ổn định.
Sửa lỗi
- Hoạt động hiện phụ thuộc vào Vòng đời
2.2.0-alpha04
.
Phiên bản 1.1.0-alpha02
Ngày 7 tháng 8 năm 2019
Phát hành androidx.activity:activity:1.1.0-alpha02
và androidx.activity:activity-ktx:1.1.0-alpha02
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
SavedStateViewModelFactory
hiện là trạng thái ban đầu mặc định được sử dụng khi sử dụngby viewModels()
, hàm khởi tạoViewModelProvider
hoặcViewModelProviders.of()
vớiComponentActivity
(b/135716331)
Phiên bản 1.1.0-alpha01
Ngày 2 tháng 7 năm 2019
Phát hành androidx.activity:activity:1.1.0-alpha01
và androidx.activity:activity-ktx:1.1.0-alpha01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
activity
hiện phụ thuộc vào Vòng đời2.2.0-alpha02
. (aosp/1007817)activity-ktx
Thêm phần phụ thuộc vàolifecycle-runtime-ktx
; bạn không cần thêm cụ thể tệp đó vào các phần phụ thuộc khi sử dụngactivity-ktx
hay các thư viện phụ thuộc vàoactivity-ktx
(chẳng hạn nhưfragment-ktx
) nữa. (aosp/987162)
Phiên bản 1.0.0
Phiên bản 1.0.0
Ngày 5 tháng 9 năm 2019
Phát hành androidx.activity:activity:1.0.0
và androidx.activity:activity-ktx:1.0.0
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Các tính năng chính của phiên bản 1.0.0
- Thành phần hoạt động:
ComponentActivity
đóng vai trò là lớp cơ sở mới choFragmentActivity
trong Fragment1.1.0
và theo tiện ích,AppCompatActivity
trong AppCompat1.1.0
. - activity-ktx: Mô-đun
activity-ktx
bao gồm một tiện ích thuộc tínhby viewModels
Kotlin để truy cập vào ViewModels. Mô-đun này được tự động đưa vào khi bạn thêmfragment-ktx
từ Fragment1.1.0
. - OnBackpressedDispatcher: Là một giải pháp thay thế cấu trúc có thể kết hợp cho việc ghi đè
onBackPressed()
, giờ đây, bạn có thể đăng kýOnBackPressedCallback
từ bất kỳLifecycleOwner
nào (chẳng hạn như một Mảnh) để chặn các sự kiện nút quay lại của hệ thống. Một Lambda với phiên bản bộ thuaddCallback
đã được thêm vàoactivity-ktx
. Xem phần Cung cấp tài liệu tuỳ chỉnh về thao tác quay lại để biết thêm thông tin chi tiết. - onKeepCustomNotConfigurationInstance:
onRetainCustomNonConfigurationInstance()
và các APIgetLastCustomNonConfigurationInstance()
liên quan đã ngừng hoạt động. Bạn nên sử dụng ViewModels để lưu trữ trạng thái không phải cấu hình vì các mô hình này cung cấp một giải pháp cấu trúc có thể kết hợp phù hợp với bất kỳViewModelStoreOwner
nào nêu rõ quyền sở hữu của các đối tượng được giữ lại và cung cấp lệnh gọi lạionCleared()
để dọn dẹp các tài nguyên khi hoạt động cuối cùng bị huỷ bỏ.
Phiên bản 1.0.0-rc01
Ngày 2 tháng 7 năm 2019
androidx.activity:activity:1.0.0-rc01
và androidx.activity:activity-ktx:1.0.0-rc01
được phát hành mà không có thay đổi nào từ 1.0.0-beta01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Phiên bản 1.0.0-beta01
Ngày 5 tháng 6 năm 2019
androidx.activity::activity:1.0.0-beta01
và androidx.activity:activity-ktx:1.0.0-beta01
được phát hành mà không có thay đổi nào từ 1.0.0-alpha08
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Phiên bản 1.0.0-alpha08
Ngày 7 tháng 5 năm 2019
Phát hành androidx.activity:activity:1.0.0-alpha08
và androidx.activity:activity-ktx:1.0.0-alpha08
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Các thay đổi về API
- Thay đổi có thể gây lỗi: Các phương thức
addOnBackPressedCallback
vàremoveOnBackPressedCallback
không dùng nữa trênComponentActivity
đã bị xoá. aosp/953857 - Phương thức
setEnabled()
vàisEnabled()
củaOnBackPressedCallback
hiện là phương thức cuối cùng. b/131416833 - Phương thức
remove()
củaOnBackPressedCallback
hiện là phương thức cuối cùng. aosp/952720 OnBackPressedDispatcher
hiện có các hàm khởi tạo công khai, cho phép bạn tạo các bản sao riêng để thử nghiệm, v.v. aosp/953431onBackPressed()
choComponentActivity
hiện được đánh dấu rõ ràng là@MainThread
aosp/952721
Sửa lỗi
- Sửa
ConcurrentModificationException
khi gọiremove()
qua phương thứchandleOnBackPressed()
củaOnBackPressedCalback
đã được thêm bằngLifecycleOwner
. b/131765095
Phiên bản 1.0.0-alpha07
Ngày 25 tháng 4 năm 2019
Phát hành androidx.activity:activity:1.0.0-alpha07
và androidx.activity:activity-ktx:1.0.0-alpha07
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Các thay đổi về API
Bản phát hành này thực hiện những thay đổi quan trọng đối với quá trình xử lý onBackPressed()
. Xem tài liệu cập nhật tuỳ chỉnh mới để biết thêm thông tin.
- Các phương thức cho
OnBackPressedCallback
vàOnBackPressedDispatcher
đã được đánh dấu là@MainThread
. (aosp/943813) - Phương thức
handleOnBackPressed()
không trả vềboolean
nữa. Thay vào đó,OnBackPressedCallback
hiện là một lớp trừu tượng có thể được bật hoặc tắt – chỉ khi phương thứcisEnabled()
mới trả về true thìhandleOnBackPressed()
mới được gọi, trong đó, bạn phải xử lý nút quay lại. (aosp/944518) - Các phương thức
addCallback
củaOnBackPressedDispatcher
không còn trả về một bản saoCancellable
nữa.OnBackPressedCallback
hiện đang chứa phương thứcremove()
đáp ứng chức năng này, cho phép bạn gọiremove()
tronghandleOnBackPressed()
. (aosp/944519) (aosp/946316) activity-ktx
hiện chứa lệnh gọi lại trong phạm vi người nhận choaddCallback
chấp nhận lamdba triển khaihandleOnBackPressed()
, đồng thời có quyền truy cập vàoisEnabled
vàremove()
(aosp/944520)
Phiên bản 1.0.0-alpha06
Ngày 3 tháng 4 năm 2019
Phát hành androidx.activity:activity:1.0.0-alpha06
và androidx.activity:activity-ktx:1.0.0-alpha06
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Các thay đổi về API
- Thành phần hoạt động hiện đang chứa một hàm khởi tạo thứ hai nhận
@LayoutRes int
, mà sẽ thay thế hành vi trước đó của bạn dùng để ghi chú lớp AppCompatActivity bằng@ContentView
. Cách tiếp cận này hoạt động trong cả mô-đun ứng dụng và thư viện. (b/128352521) - Các API liên quan đến
OnBackPressedCallback
trên ComponentActivity đã ngừng hoạt động và được thay thế bằngOnBackPressedDispatcher
mới, có thể truy xuất quagetOnBackPressedDispatcher()
. (aosp/922523) - Các phương thức thêm một
OnBackPressedCallback
mới vàoOnBackPressedDispatcher
giờ sẽ trả về đối tượngCancellable
, cho phép xoá lệnh gọi lại mà không cần tham chiếu rõ ràng đếnOnBackPressedDispatcher
. (aosp/922523) - Giờ đây, việc thêm
OnBackPressedCallback
cóLifecycleOwner
liên kết sẽ dẫn đến việc thêm và xoáOnBackPressedCallback
khi Vòng đời lần lượt bắt đầu và dừng hoạt động. (aosp/922523)
Phiên bản 1.0.0-alpha05
Ngày 13 tháng 3 năm 2019
Phát hành androidx.activity:activity:1.0.0-alpha05
và androidx.activity:activity-ktx:1.0.0-alpha05
. Bạn có thể xem toàn bộ thay đổi trong bản phát hành này tại đây.
Tính năng mới
- Hoạt động tra cứu chú thích
@ContentView
hiện được lưu vào bộ nhớ đệm (b/123709449)
Phiên bản 1.0.0-alpha04
Ngày 30 tháng 1 năm 2019
Phát hành androidx.activity:activity 1.0.0-alpha04
và androidx.activity:activity-ktx 1.0.0-alpha04
.
Tính năng mới
- Thêm chức năng hỗ trợ cho chú thích lớp
@ContentView
để cho phép bạn chỉ định tệp XML bố cục nào sẽ được tăng cường để thay thế cho việc sử dụngsetContentView()
. (aosp/837619)
Các thay đổi về API
- Thêm ghi chú rằng
getViewModelStore()
không được ghi đè và sẽ được đưa ra vào bản phát hành chính thức trong tương lai. Vui lòng gửi yêu cầu về tính năng nếu bạn hiện đang ghi đè phương pháp này. (aosp/837619)
Sửa lỗi
- Mô-đun
activity
hiện phụ thuộc vào phiên bản 2.1.0-alpha02 của ViewModel để phù hợp với phần phụ thuộc của mô-đunactivity-ktx
.
Phiên bản 1.0.0-alpha03
Ngày 17 tháng 12 năm 2018
Phát hành androidx.activity 1.0.0-alpha03
.
Tính năng mới
- ComponentActivity hiện triển khai
BundleSavedStateRegistryOwner
và phụ thuộc vào thư viện SavedState mới phát hành [aosp/815133] - ComponentActivity hiện hoạt động xung quanh lỗi khung Android, khiến InputMethodManager rò rỉ thành phần hiển thị tập trung cuối cùng [b/37122102]
Phiên bản 1.0.0-alpha02
Ngày 3 tháng 12 năm 2018
Các thay đổi về API
- Thêm ghi chú rằng
getLifecycle()
không được ghi đè và sẽ được thực hiệnfinal
trong bản phát hành trong tương lai. Vui lòng gửi yêu cầu về tính năng nếu bạn hiện đang ghi đè phương thức này. (aosp/815834)
Phiên bản 1.0.0-alpha01
Ngày 5 tháng 11 năm 2018
androidx.activity 1.0.0-alpha01
giới thiệu
ComponentActivity
, một lớp cơ sở mới của FragmentActivity
và
AppCompatActivity
hiện có.
Tính năng mới
- Bây giờ, bạn có thể đăng ký
OnBackPressedCallback
quaaddOnBackPressedCallback
để nhận các lệnh gọi lạionBackPressed()
mà không cần ghi đè phương thức trong hoạt động. - Thêm một uỷ quyền thuộc tính
by viewModels()
Kotlin mới để truy xuấtViewModel
từ mộtComponentActivity
. - Các sự kiện đầu vào đang chờ xử lý (chẳng hạn như lượt nhấp) nay bị huỷ trong
onStop()
.
Các thay đổi về API
- Việc triển khai
LifecycleOwner
vàViewModelStoreOwner
đã được chuyển từFragmentActivity
sangComponentActivity
. - Ngừng sử dụng
onRetainCustomNonConfigurationInstance
. Sử dụngViewModel
để lưu trữ các đối tượng cần tồn tại sau khi thay đổi cấu hình.