Hoạt động
Truy cập vào các API có thể kết hợp, được xây dựng dựa trên Hoạt động (Activity).
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 30 tháng 10 năm 2024 1.9.3 - - 1.10.0-alpha03

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.2"

    // Java language implementation
    implementation "androidx.activity:activity:$activity_version"
    // Kotlin
    implementation "androidx.activity:activity-ktx:$activity_version"
}

Kotlin

dependencies {
    val activity_version = "1.9.2"

    // 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.

Báo lỗi mới

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-alpha03

Ngày 30 tháng 10 năm 2024

Phát hành androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03androidx.activity:activity-ktx:1.10.0-alpha03. Phiên bản 1.10.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm một thành phần LocalActivity cục bộ mới cung cấp Activity cho phạm vi hiện tại, giúp nhà phát triển không cần phải lấy Activity từ LocalContext. Phiên bản này cũng đi kèm với một quy tắc tìm lỗi mã nguồn mới để kiểm tra thời điểm LocalContext được truyền không chính xác đến Activity. (I7746a, b/283009666)

Sửa lỗi

  • Từ phần Hoạt động 1.9.3: PredictiveBackHandler sẽ không còn kích hoạt lệnh gọi lại sau khi trình xử lý bị tắt. Thao tác này sẽ khắc phục vấn đề NavHost từ Navigation Compose sẽ gửi một IndexOutOfBoundsException. (I3f75e, b/365027664, b/340202286)

Cập nhật về phần phụ thuộc

  • Activity Compose hiện phụ thuộc vào Compose Runtime 1.7.0 (I7746a, b/283009666)

Phiên bản 1.10.0-alpha02

Ngày 4 tháng 9 năm 2024

Phát hành androidx.activity:activity:1.10.0-alpha02, androidx.activity:activity-compose:1.10.0-alpha02androidx.activity:activity-ktx:1.10.0-alpha02. Phiên bản 1.10.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về hành vi

  • Các hợp đồng Kết quả hoạt động PickVisualMediaPickMultipleVisualMedia kích hoạt Công cụ chọn ảnh không còn uỷ quyền trực tiếp cho Dịch vụ Google Play nếu không có Công cụ chọn ảnh của hệ thống, mà sử dụng thao tác ACTION_SYSTEM_FALLBACK_PICK_IMAGES công khai và các tính năng bổ sung có liên quan để cung cấp trải nghiệm nhất quán cho Công cụ chọn ảnh cho OEM và ứng dụng hệ thống dưới dạng dự phòng. Điều này sẽ không ảnh hưởng đến trải nghiệm người dùng đối với những thiết bị có phiên bản Dịch vụ Google Play mới đây. (I3513d)

Sửa lỗi

  • Xoá phần trình bày quyền truy cập vào API nền tảng mới theo cách thủ công vì việc này diễn ra tự động thông qua tính năng tạo mô hình API khi sử dụng R8 với AGP 7.3 trở lên (ví dụ: R8 phiên bản 3.3) và cho tất cả các bản dựng khi sử dụng AGP 8.1 trở lên (ví dụ: D8 phiên bản 8.1). Những ứng dụng không sử dụng AGP nên cập nhật lên D8 phiên bản 8.1 trở lên. Xem bài viết này để biết thêm chi tiết. (I9496c, b/345472586)
  • Trong phần Hoạt động 1.9.2: Khắc phục vấn đề API Activity Compose PredictiveBackHandler vẫn tiếp tục xử lý cử chỉ quay lại của hệ thống trên khung mà nó bị vô hiệu hoá. Điều này có thể khiến các thư viện như Navigation Compose (Điều hướng Compose) xử lý ngay cả khi một ngăn xếp lui trống, dẫn đến việc gửi ra một IndexOutOfBoundsException. (Ie3301, b/340202286)
  • Trong phần Hoạt động 1.9.1: Khắc phục một vấn đề với PredictiveBackHandler, trong đó sau khi hệ thống quay lại, bạn sẽ không thực hiện được onBackPressed từ OnBackPressedDispatcher. (I5f1f8)

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-alpha01androidx.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.3

Ngày 16 tháng 10 năm 2024

Phát hành androidx.activity:activity:1.9.3, androidx.activity:activity-compose:1.9.3androidx.activity:activity-ktx:1.9.3. Phiên bản 1.9.3 bao gồm các thay đổi sau.

Sửa lỗi

  • PredictiveBackHandler sẽ không còn kích hoạt lệnh gọi lại sau khi trình xử lý bị vô hiệu hoá. Thao tác này sẽ khắc phục vấn đề NavHost trong Navigation Compose sẽ gửi một IndexOutOfBoundsException. (I3f75e, b/340202286)

Phiên bản 1.9.2

Ngày 4 tháng 9 năm 2024

Phát hành androidx.activity:activity:1.9.2, androidx.activity:activity-compose:1.9.2androidx.activity:activity-ktx:1.9.2. Phiên bản 1.9.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề API PredictiveBackHandler của Activity Compose tiếp tục xử lý cử chỉ quay lại hệ thống trên khung đã tắt, điều này có thể khiến các thư viện như Navigation Compose xử lý thao tác quay lại ngay cả khi ngăn xếp lui trống, dẫn đến việc gửi IndexOutOfBoundsException. (Ie3301, b/340202286)

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.1androidx.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ện onBackPressed 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.0androidx.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 khai OnUserLeaveHintProvider để cho phép các thành phần gọi lại cho các sự kiện onUserLeaveHint.
  • Giờ đây, các API OnBackPressedCallback, BackHandlerPredictiveBackHandler sẽ cảnh báo khi gọi onBackPressedDispatcher.onBackPressed() khi xử lý thao tác quay 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 chi tiết.
  • Phần còn lại của API Hoạt động đã được viết lại bằng Kotlin và tất cả các tiện ích trước đây có trong activity-ktx đã được chuyển sang activity. activity-ktx hiện hoàn toàn trống.
    • Trong quá trình chuyển đổi ActivityResultLauncher sang Kotlin, phương thức getContract hiện là một thuộc tính Kotlin trừu tượng. Đây là thay đổi tương thích với tệp nhị phân, nhưng gây lỗi nguồn nếu bạn triển khai ActivityResultLauncher bằng Kotlin.

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-rc01androidx.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

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-beta01androidx.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 về hiệu suất khởi động Hoạt động được giới thiệu trong Hoạt động 1.9.0-alpha02 do việc gọi OnBackPressedDispatcher 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-alpha03androidx.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

Sửa lỗi

  • Nếu một sự kiện quay lại được gửi từ hệ thống bắt đầu trong một 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 đang chạy sẽ bị huỷ và sự kiện quay lại mới sẽ tiếp quản để 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 qua ComponentActivity qua một luồng ở chế độ nền. Hiện đã an toàn để truy cập vào onBackPressedDispatcher trên bất kỳ luồng 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-alpha02androidx.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 bằng Kotlin. Điều này đảm bảo rằng tính chất rỗng của các thuộc tính chung trên hợp đồng được truyền đến register sẽ được truyền chính xác đến ActivityResultLauncher được trả về cho bạn. (I121f0)
  • ActivityResult đã được viết lại bằng Kotlin. Các tiện ích Kotlin ActivityResult hỗ trợ phân ly cấu trúc thành các trường resultCodedata đã được chuyển từ activity-ktx sang activity. (I0565a)
  • Các phần mở rộng Kotlin của by viewModels() cho ComponentActivitytrackPipAnimationHintView đã được chuyển từ activity-ktx sang activity. Cấu phần phần mềm activity-ktx hiện hoàn toàn trống. (I0a444)

Sửa lỗi

  • API enableEdgeToEdge hiện vẽ xung quanh mọi phần cắt trên màn hình. (a3644b, b/311173461)
  • Trong phần Hoạt động 1.8.2: Khắc phục phần bổ sung được truyền đến ACTION_SYSTEM_FALLBACK_PICK_IMAGES của Hợp đồng hoạt động của công cụ chọn ảnh để truyền chính xác khoá EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX, thay vì sử dụng phần bổ sung với khoá "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". Nếu bạn là nhà sản xuất thiết bị gốc (OEM) triển khai Công cụ chọn ảnh dự phòng của hệ thống, bạn nên hỗ trợ cả hai tính năng bổ sung để đả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-alpha01androidx.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 khai OnUserLeaveHintProvider để cho phép các thành phần gọi lại cho các sự kiện onUserLeaveHint. (I54892)

Thay đổi về API

  • ComponentActivity đã được viết lại bằng Kotlin. (I14f31)
  • ActivityResultCaller đã được viết lại bằng Kotlin. (Ib02e4)
  • ActivityResultLauncher đã được viết lại trong Kotlin. Trong quá trình chuyển đổi đó, phương thức getContract hiện là một thuộc tính Kotlin trừu tượng. Đây là thay đổi tương thích với tệp nhị phân, nhưng gây lỗi nguồn nếu bạn triển khai ActivityResultLauncher bằng Kotlin. (Id4615)
  • PickVisualMediaRequest hiện có cùng cấp độ API tối thiểu là 19 với hợp đồng Kết quả hoạt động PickVisualMedia. (Id6e21)

Cập nhật về phần phụ thuộc

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.2androidx.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.1androidx.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 đúng OnBackPressedCallback ngay cả sau khi thêm OnBackPressedCallback 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.0androidx.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ạiOnBackPressedCallback hiện cung cấp các lệnh gọi lại 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ại handleOnBackPressed() trước tại thời điểm cử chỉ quay lại được xác nhận. Thành phần kết hợp này cũng đi kèm với Thành phần kết hợp PredictiveBackHandler để 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 không được dùng nữa và thay vào đó là các API để xử lý thao tác quay lại. Giờ đây, nhà phát triển nên sử dụng OnBackPressedDispatcher thay vì ghi đè phương thức này.

  • EdgeToEdgeComponentActivity.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-rc01androidx.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-beta01androidx.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 tiến tài liệu

  • Cải thiện tài liệu về 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-alpha07androidx.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 cử chỉ xem trước thao tác quay lại. Phương thức này cung cấp Flow của các đối tượng BackEventCompat phải đượ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
      }
    }
    

    Tệp 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ọi collect(). (Id2773, b/294884345)

  • onBackPressedDispatcher trong ComponentActivity hiện được khởi tạo một cách trì hoãn để chỉ được tạo khi cần. (I0bf8e)

Sửa lỗi

  • ComponentActivity sẽ không còn hiển thị NPE trên Android 13 khi nhận được lệnh gọi lại onBackPressed() và Hoạt động đã được DESTROYED. (Idb055, b/291869278)
  • Xoá các trường hợp 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-alpha06androidx.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

  • OnBackPressedDispatcher hiện 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

  • Khi truyền SystemBarStyle.auto đến API enableEdgeToEdge, giờ đây, bạn có thể ghi đè tham số lambda detectDarkMode để cung cấp logic tuỳ chỉnh nhằm 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-alpha05androidx.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ản BackEvent tương thích ngược được tách khỏi lớp BackEvent của khung.
  • Thay đổi có thể gây lỗi: Phương thức handleOnBackStartedhandleOnBackProgressed của OnBackPressedCallback hiện nhận được một thực thể androidx.activity.BackEventCompat thay vì một lớp android.window.BackEvent của khung. Các API @VisibleForTesting tương đương trên OnBackPressedDispatcher cũng đã được cập nhật.
  • Hàm khởi tạo cho OnBackPressedDispatcher hiện 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ông bằng 0 hoặc ngược lại.

Sửa lỗi

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-alpha04androidx.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

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-alpha03androidx.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 không được dùng nữa và thay vào đó là các API để xử lý thao tác quay lại. Giờ đây, nhà phát triển nên sử dụng OnBackPressedDispatcher thay vì ghi đè phương thức này. (Ibce2f, b/271596918)
  • ComponentDialogComponentActivity hiện chứa API công khai initViewTreeOwners() để dùng cho việc khởi chạy tất cả chủ sở hữu cây thành phần hiển thị trước khi đặt thành phần hiển thị nội dung. (Ibdce0, b/261314581)

Sửa lỗi

  • Khắc phục vấn đề trong đó các Mảnh vô hiệu hoá không chính xác 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 Kotlin Random 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-alpha02androidx.activity:activity-ktx:1.8.0-alpha02. Được phát triển từ một nhánh nội bộ.

Cập nhật các phần phụ thuộc

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-alpha01androidx.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ại handleOnBackPressed() 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.2androidx.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 rời khỏi màn hình trước khi report đượ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.1androidx.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ụng ComponentActivity với ActivityScenario. (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.0androidx.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

  • Hợp đồng hoạt động của Công cụ chọn ảnh trong PickVisualMediaPickMultipleVisualMedia đã được cập nhật để chứa một phương án dự phòng bổ sung khi không có MediaStore.ACTION_PICK_IMAGES. Phương án 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 hơn 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 thức dự phòng này nếu có trước khi quay lại sử dụng Intent.ACTION_OPEN_DOCUMENT. Phương thức này vẫn hỗ trợ tất cả thiết bị API 19 trở lên.
  • ComponentDialog hiện triển khai SavedStateRegistryOwner và có quyền truy cập vào SavedStateRegistry riêng cũng như đặt SavedStateRegistryOwner cho ViewTree. Giờ đây, bạn có thể dùng Jetpack Compose trong ComponentDialog vì bộ công cụ này đáp ứng cả LifecycleOwnerSavedStateRegistryOwner được đính kèm với Cửa sổ thông qua các yêu cầu về API ViewTree.
  • 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 Hoạt động đã được chuyển đổi sang Kotlin. Tất cả các lớp đã chuyển đổi vẫn giữ được 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 đây có thay đổi không tương thích với nguồn đối với các 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 Activity 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val >

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, IntentSenderRequestOnBackPressedDispatcher

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 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:

  • 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

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-rc01androidx.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

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-beta02androidx.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 PickVisualMediaPickMultipleVisualMedia 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-beta01androidx.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ính activityResultRegistry thay vì triển khai hàm getActivityResultRegistry(). (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ính onBackPressedDispatcher thay vì triển khai hàm getOnBackPressedDispatcher. (Ia277d)
  • ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequestOnBackPressedDispatcher 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-alpha04androidx.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 PickVisualMediaPickMultipleVisualMedia 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ụng isPhotoPickerAvailable() 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ụng isPhotoPickerAvailable(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-alpha03androidx.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 khai SavedStateRegistryOwner và có quyền truy cập vào SavedStateRegistry riêng cũng như đặt SavedStateRegistryOwner cho ViewTree của ComponentDialog. Giờ đây, bạn có thể dùng Jetpack Compose trong ComponentDialog vì bộ công cụ này đáp ứng cả LifecycleOwnerSavedStateRegistryOwner đượ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ọi reportFullyDrawn. (Ic5b14, b/259687964)

Hoạt động chuyển đổi trong Kotlin

  • Cả hai lớp ActvitiyResultCallbackOnBackPressedCallback đề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-alpha02androidx.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ủa PickMultipleVisualMedia không chạy trên các thiết bị Android R khi dùng giá trị mặc định cho maxItems. (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-alpha01androidx.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.1androidx.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 cho maxItems. (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.0androidx.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.PickVisualMediaActivityResultContracts.PickMultipleVisualMedia để cung cấp một hợp đồng tương thích ngược sử dụng MediaStore.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ào OnBackPressedDispatchers do ComponentActivityComponentDialog cung cấp. Điều này đảm bảo tất cả các API được tạo trên OnBackPressedDispatcher đề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-rc02androidx.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ới PRIORITY_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ại onMultiWindowModeChanged() của chúng. (Ic4d85)
  • ActivityResultRegistry sẽ không trả về kết quả cho ActivityResultCallback khi lệnh gọi launch 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

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-rc01androidx.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ỗi ClassVerificationError 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ủa ComponentActivity 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-beta01androidx.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 startActivityForResultstartIntentSenderForResult không còn được dùng nữa trên ComponentActivity bằng @NonNull, vì việc truyền null 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ả cho ActivityResultCallback khi lệnh gọi launch 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()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

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-alpha05androidx.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ới ACTION_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-alpha04androidx.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ào OnBackPressedDispatcher do ComponentDialog cung cấp. Điều này đảm bảo tất cả các API được tạo trên OnBackPressedDispatcher đề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-alpha03androidx.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.PickVisualMediaActivityResultContracts.PickMultipleVisualMedia để cung cấp một hợp đồng tương thích ngược sử dụng MediaStore.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ào OnBackPressedDispatcher do ComponentActivity cung cấp. Điều này đảm bảo tất cả các API được tạo trên OnBackPressedDispatcher đề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-alpha01androidx.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.1androidx.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ả cho ActivityResultCallback khi lệnh gọi launch() 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()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

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.0androidx.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

  • ComponentDialogComponentDialog là một lớp con của Dialog, bao gồm một OnBackPressedDispatcher 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 đặt ViewTreeOnBackPressedDispatcherOwner, 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ó trong ComponentActivity hay ComponentDialog.
  • Giao diện gọi lạiComponentActivity 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ại Activity. Những giao diện này bao gồm: OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider
  • Tích hợp CreateExtrasComponentActivity hiện có khả năng cung cấp trạng thái không có trạng thái ViewModelProvider.Factory qua CreationExtras 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ủa Intent.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-rc01androidx.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-beta01androidx.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

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-alpha05androidx.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ủa ComponentActivity cũng gọi cho lớp cấp trên onPanelClosed(), điều này khắc phục sự cố không gọi được phương thức onContextMenuClosed. (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-alpha04androidx.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ụng CreationExtras ngay cả khi được khởi tạo bằng SavedStateRegistryOwner. 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-alpha03androidx.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àm by 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-alpha02androidx.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ện OnPictureInPictureModeChangedProvider để 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ện OnMultiWindowModeChangedProvider để 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-alpha01androidx.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 đời 2.5.0-alpha01. (Ie7e00, b/207012584)
  • Thêm ComponentDialog, một lớp con của Dialog bao gồm OnBackPressedDispatcher 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 đặt ViewTreeOnBackPressedDispatcherOwner, 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ó trong ComponentActivity hay ComponentDialog. (I8a1bc)
  • ComponentActivity nay triển khai giao diện OnNewIntentProvider 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ện OnConfigurationChangedProvider 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ện OnTrimMemoryProvider 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ủa Intent.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 qua ViewTreeOnBackPressedDispatcherOwner, thay vì dựa vào việc truyền Context. (I74685)

Sửa lỗi

  • Khắc phục sự cố khi truy cập vàoViewModel lần đầu tiên từ lệnh gọi lại registerForActivityResult() hoặc lệnh gọi lại đếnLifecycleObserver Thêm như một phần của init của ComponentActivity , (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.0androidx.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ện MenuHost. 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ào ActionBar bằng cách thêm một bản sao MenuProvider vào hoạt động. Bạn có thể thêm mỗi MenuProvider bằng một Lifecycle 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ái Lifecycle, đồng thời xử lý việc xoá MenuProvider khi Lifecycle 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-rc01androidx.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ả cho ActivityResultCallback nữa khi lệnh gọi launch 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-beta01androidx.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.OpenMultipleDocumentsActivityResultContracts.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.StartIntentSenderForResultActivityResultContracts.RequestMultiplePermissions hiện có thể truy cập được khi sử dụng Kotlin thông qua các đối tượng Companion 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, requestPermissionsonRequestPermissionsResult, đã đượ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-alpha02androidx.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ồn LaunchDuringComposition khiến bạn không thể gọi phương thức launch của ActivityResultLauncher 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-alpha01androidx.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ện MenuHost. 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ào ActionBar bằng cách thêm một bản sao MenuProvider vào hoạt động. Bạn có thể thêm mỗi MenuProvider bằng một Lifecycle 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ái Lifecycle, đồng thời xử lý việc xoá MenuProvider khi Lifecycle 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ột IllegalStateException khi cố gắng gọi launch() trên ActivityResultLauncher chưa được đăng ký hoặc đã được huỷ đăng ký. (Ida75d, b/192567522)

Đóng góp bên ngoài

  • Cảm ơn dmitrilc Khắc phục lỗi chính tả trong tài liệu của ActivityResult. (#221)

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.1androidx.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.0androidx.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ộng setContent để 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 API ComponentActivity để 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 CaptureVideoCaptureVideo ActivityResultContract sẽ thay thế hợp đồng TakeVideo 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ộng trackPipAnimationHintView trên Activity để tự động tạo lại PictureInPictureParams 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-rc02androidx.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-rc01androidx.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-beta02androidx.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-beta01androidx.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ụng rememberLauncherForActivityResult(). (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-alpha08androidx.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 cho ActivityResultCallback 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 đồng TakeVideo 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àm unregister() nữa. và huỷ đăng ký trình chạy sẽ do rememberLauncherForActivityResult 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ản 1.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-alpha07androidx.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 sao ActivityResultLauncher 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ụng 1.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-alpha06androidx.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ành rememberLauncherForActivityResult() để 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 cho unregister, ActivityResultLauncher được trả về sẽ gặp lỗi. (I2bb6d)
  • LocalOnBackPressedDispatcherOwner.currentLocalActivityResultRegistryOwner.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ư BackHandlerrememberLauncherForActivityResult(), 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ấy OnBackPressedDispatcherOwner, trường hợp này xảy ra khi bạn xem trước NavHost. (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()ActivityResultContract tuỳ chỉnh có giá trị nhập Unit sẽ không còn gây ra NullPointerException (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-alpha05androidx.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ánh ClassNotFoundException khi chạy một Intent từ ActivityResultContract mà trước đây được giữ lại dưới dạng bổ sung trong một Intent khác , (Ieff05, b/182906230)

Thông tin cập nhật về phần phụ thuộc

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-alpha04androidx.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ầu launch() đang xử lý sẽ trả về kết quả ngay cả khi bạn unregister(), 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 đó lambda onBack đã đặ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-alpha03androidx.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àm provides mà bạn có thể dùng với CompositionLocalProvider, thay thế API asProvidableCompositionLocal(). (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-alpha02androidx.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 Compose 1.0.0-alpha12. Tất cả người dùng Compose phải phụ thuộc vào 1.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-alpha01androidx.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 sang androidx.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.4androidx.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.3androidx.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()ActivityResultContract tuỳ chỉnh có giá trị nhập Unit sẽ không còn gây ra NullPointerException (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.2androidx.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ánh ClassNotFoundException khi khởi chạy Intent từ ActivityResultContract mà trước đó đã được giữ lại làm một mục bổ sung trong Intent khác. (Ieff05, b/182906230)

Thông tin cập nhật về phần phụ thuộc

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.1androidx.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ầu launch() đang được xử lý sẽ trả về kết quả ngay cả khi bạn unregister() 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.0androidx.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ấp ActivityResultRegistry cho phép bạn xử lý luồng startActivityForResult()+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 qua ActivityResultContract 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 khai ContextAware, cho phép bạn thêm một hoặc nhiều bản sao OnContextAvailableListener 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ủa FragmentManager. Bất kỳ trình nghe nào được thêm vào lớp con của FragmentActivity đề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ủa AppCompatActivity đều sẽ chạy sau trình nghe đó.
  • Nhóm hỗ trợ ViewTree: ComponentActivity hiện hỗ trợ các API ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View)ViewTreeSavedStateRegistryOwner mà bạn thêm vào Vòng đời 2.3.0SavedState 1.1.0 sao cho chế độ này sẽ trả về Hoạt động dưới dạng LifecycleOwner, ViewModelStoreOwnerSavedStateRegistryOwner cho mọi thành phần hiển thị thêm vào ComponentActivity.

  • reportFully Drawn() điều chỉnh cho phiên bản cũ – Phương thức Activity của reportFullyDrawn() đã được điều chỉnh trong ComponentActivity để 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-rc01androidx.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-beta02androidx.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ới Lifecycle. (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ột ActivityNotFoundException. 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-beta01androidx.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ầu register(), 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ọi unregister() trên ActivityResultLauncher. (b/165608393)

Các thay đổi về hành vi

  • ActivityResultRegistry hiện đang gửi một IllegalStateException khi đang cố gọi register() bằng một LifecycleOwnerLifecycle của nó đã đạt STARTED. (b/165435866)

Tài liệu được cập nhật

  • Tài liệu ContextAware liên kết với LifecycleOwner để đánh dấu lệnh gọi lại Lifecycle 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-alpha08androidx.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 khai ContextAware, cho phép bạn thêm một hoặc nhiều bản sao OnContextAvailableListener mà sẽ nhận được lệnh gọi lại trước Activity.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ủa FragmentManager. Bất kỳ trình nghe nào được thêm vào lớp con của FragmentActivity đề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ủa AppCompatActivity đều sẽ chạy sau trình nghe đó. (I513da)

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-alpha07androidx.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ụngFragment 1.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 động RequestPermission. (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-alpha06androidx.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ào requestCodeintent. (b/157212935)
  • ActivityResultLauncher hiện cho phép bạn nhận ActivityResultContract 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ên ActivityResultRegistry đã được đổi tên thành onLaunch(). (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-alpha05androidx.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

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ào Uri được cung cấp. (b/154302879)
  • Các tiện ích invoke() trên ActivityResultLauncher đã được xoá và sử dụng launch() 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 cho launch đã được thêm vào gói androidx.activity.result cho ActivityResultLauncher<Void>ActivityResultLauncher<Unit>. Điều này giúp loại bỏ nhu cầu chuyển vào null hoặc Unit tương ứng, phản ánh hành vi đó từ các tiện ích invoke() trước đó. (aosp/1304674, aosp/1304675)
  • Các phương thức IntentSenderRequest.Builder cho setFlagsMask()setFlagsValues() đã được kết hợp thành một phương thức setFlags() duy nhất. (aosp/1302111)

Sửa lỗi

  • Khi đăng ký ActivityResultCallback với LifecycleOwner, 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 đạt STARTED. (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ụng startActivityForResult() hoặc requestPermissions() 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-alpha04androidx.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ành registerForActivityResult(), cả trên ComponentActivity tại đây và trong Fragment 1.3.0-alpha04. (aosp/1278717)
  • Các hợp đồng GetContents, OpenDocumentsRequestPermissions lần lượt được đổi tên thành GetMultipleContents, OpenMultipleDocumentsRequestMultiplePermissions. (aosp/1280161)
  • ComponentActivity hiện triển khai giao diện ActivityResultRegisteryOwner. (aosp/1290888)
  • – API startActivityForResult()/onActivityResult()onRequestPermissionsResult() trên ComponentActivity 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 GetMultipleContentsOpenMultipleDocuments, đồ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-alpha03androidx.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, OpenDocumentTreeCreateDocument vào tập hợp các dữ liệu hợp đồng được tạo sẵn do ActivityResultContracts 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ào Uri để 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ành TakePicturePreview. (aosp/1262482)
  • Phương thức registerActivityResultCallback() trên ActivityResultRegistry đã được đổi tên thành register(). (aosp/1267621)
  • Phương thức dispose() trên ActivityResultLauncher đã được đổi tên thành unregister()unregisterResultCallback() trên ActivityResultRegistry đã bị xoá. (aosp/1267621)
  • Phương thức createIntent() của ActivityResultContact giờ đây sẽ lấy Context 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ọi startActivityForResult. Việc này được các hợp đồng RequestPermissionRequestPermissions 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ới startActivityForResult(). (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ồm getActivityResultRegistry(), các phương thức prepareCall(), tất cả các phương thức ActivityResultRegistry 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 trong ActivityResultRegistry 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-alpha02androidx.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ột ActivityResultRegistry cho phép bạn xử lý các luồng startActivityForResult()+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 qua ActivityResultContract 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-alpha01androidx.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 đời 2.3.0-alpha01 để API này trả lại Hoạt động dưới dạng LifecycleOwner 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 ra IllegalStateException do lỗi trong android.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ụng by viewModels(), hàm khởi tạo ViewModelProvider hoặc ViewModelProviders.of() với ComponentActivity 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-rc03androidx.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 SavedState 1.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-rc02androidx.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-rc01androidx.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-beta01androidx.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-alpha03androidx.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

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-alpha02androidx.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ụng by viewModels(), hàm khởi tạo ViewModelProvider hoặc ViewModelProviders.of() với ComponentActivity (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-alpha01androidx.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 đời 2.2.0-alpha02. (aosp/1007817)
  • activity-ktx Thêm phần phụ thuộc vào lifecycle-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ụng activity-ktx hay các thư viện phụ thuộc vào activity-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.0androidx.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 cho FragmentActivity trong Fragment 1.1.0 và theo tiện ích, AppCompatActivity trong AppCompat 1.1.0.
  • activity-ktx: Mô-đun activity-ktx bao gồm một tiện ích thuộc tính by viewModels Kotlin để truy cập vào ViewModels. Mô-đun này được tự động đưa vào khi bạn thêm fragment-ktx từ Fragment 1.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ộ thu addCallback đã được thêm vào activity-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 API getLastCustomNonConfigurationInstance() 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ại onCleared() để 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-rc01androidx.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-beta01androidx.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-alpha08androidx.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 addOnBackPressedCallbackremoveOnBackPressedCallback không dùng nữa trên ComponentActivity đã bị xoá. aosp/953857
  • Phương thức setEnabled()isEnabled() của OnBackPressedCallback hiện là phương thức cuối cùng. b/131416833
  • Phương thức remove() của OnBackPressedCallback 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/953431
  • onBackPressed() cho ComponentActivity hiện được đánh dấu rõ ràng là @MainThread aosp/952721

Sửa lỗi

  • Sửa ConcurrentModificationException khi gọi remove() qua phương thức handleOnBackPressed() của OnBackPressedCalback đã được thêm bằng LifecycleOwner. 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-alpha07androidx.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 OnBackPressedCallbackOnBackPressedDispatcher đã đượ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ức isEnabled() 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ủa OnBackPressedDispatcher không còn trả về một bản sao Cancellable nữa. OnBackPressedCallback hiện đang chứa phương thức remove() đáp ứng chức năng này, cho phép bạn gọi remove() trong handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • activity-ktx hiện chứa lệnh gọi lại trong phạm vi người nhận cho addCallback chấp nhận lamdba triển khai handleOnBackPressed(), đồng thời có quyền truy cập vào isEnabledremove() (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-alpha06androidx.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ằng OnBackPressedDispatcher mới, có thể truy xuất qua getOnBackPressedDispatcher(). (aosp/922523)
  • Các phương thức thêm một OnBackPressedCallback mới vào OnBackPressedDispatcher giờ sẽ trả về đối tượng Cancellable, cho phép xoá lệnh gọi lại mà không cần tham chiếu rõ ràng đến OnBackPressedDispatcher. (aosp/922523)
  • Giờ đây, việc thêm OnBackPressedCallbackLifecycleOwner 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-alpha05androidx.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-alpha04androidx.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ụng setContentView(). (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ô-đun activity-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ện final 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 FragmentActivityAppCompatActivity hiện có.

Tính năng mới

  • Bây giờ, bạn có thể đăng ký OnBackPressedCallback qua addOnBackPressedCallback để nhận các lệnh gọi lại onBackPressed() 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ất ViewModel từ một ComponentActivity.
  • 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 LifecycleOwnerViewModelStoreOwner đã được chuyển từ FragmentActivity sang ComponentActivity.
  • Ngừng sử dụng onRetainCustomNonConfigurationInstance. Sử dụng ViewModel để lưu trữ các đối tượng cần tồn tại sau khi thay đổi cấu hình.