กิจกรรม

เข้าถึง API แบบคอมโพสิเบิลที่สร้างขึ้นจาก Activity
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
13 พฤศจิกายน 2024 1.9.3 - 1.10.0-beta01 -

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มการพึ่งพาในกิจกรรม คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล

Groovy

dependencies {
    def activity_version = "1.9.3"

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

Kotlin

dependencies {
    val activity_version = "1.9.3"

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา

เวอร์ชัน 1.10

เวอร์ชัน 1.10.0-beta01

13 พฤศจิกายน 2024

androidx.activity:activity:1.10.0-beta01, androidx.activity:activity-compose:1.10.0-beta01 และ androidx.activity:activity-ktx:1.10.0-beta01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงใดๆ นับตั้งแต่รุ่นอัลฟ่าล่าสุด เวอร์ชัน 1.10.0-beta01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.10.0-alpha03

30 ตุลาคม 2024

androidx.activity:activity:1.10.0-alpha03, androidx.activity:activity-compose:1.10.0-alpha03 และ androidx.activity:activity-ktx:1.10.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.10.0-alpha03 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มLocalActivity ใหม่ในองค์ประกอบที่ระบุActivityสำหรับขอบเขตปัจจุบัน ซึ่งทำให้นักพัฒนาแอปไม่ต้องรับActivityจากLocalContext นอกจากนี้ยังมีกฎใหม่ใน Lint ที่ตรวจสอบเมื่อมีการแคสต์ LocalContext เป็น Activity อย่างไม่ถูกต้อง (I7746a, b/283009666)

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.9.3: PredictiveBackHandler จะไม่เรียกใช้การเรียกกลับอีกต่อไปหลังจากปิดใช้ตัวแฮนเดิล ซึ่งจะแก้ไขปัญหาที่ NavHost จาก Navigation Compose จะแสดง IndexOutOfBoundsException (I3f75e, b/365027664, b/340202286)

อัปเดตทรัพยากร Dependency

  • ตอนนี้ Activity Compose ต้องใช้ Compose Runtime 1.7.0 (I7746a, b/283009666)

เวอร์ชัน 1.10.0-alpha02

4 กันยายน 2024

androidx.activity:activity:1.10.0-alpha02, androidx.activity:activity-compose:1.10.0-alpha02 และ androidx.activity:activity-ktx:1.10.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.10.0-alpha02 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงลักษณะการทำงาน

  • สัญญาผลลัพธ์กิจกรรม PickVisualMedia และ PickMultipleVisualMedia ที่ทริกเกอร์เครื่องมือเลือกรูปภาพจะไม่มอบสิทธิ์ให้บริการ Google Play โดยตรงอีกต่อไปหากเครื่องมือเลือกรูปภาพของระบบไม่พร้อมใช้งาน แต่จะใช้การดำเนินการ ACTION_SYSTEM_FALLBACK_PICK_IMAGES แบบสาธารณะและส่วนเสริมที่เกี่ยวข้องเพื่อให้ OEM และแอประบบได้รับประสบการณ์การใช้งานเครื่องมือเลือกรูปภาพที่สอดคล้องกันโดยเป็นทางเลือกสำรอง การดำเนินการนี้จะไม่ส่งผลต่อประสบการณ์ของผู้ใช้สำหรับอุปกรณ์ที่มีบริการ Google Play เวอร์ชันล่าสุด (I3513d)

การแก้ไขข้อบกพร่อง

  • นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ด้วยตนเองออกแล้ว เนื่องจากการดำเนินการนี้จะทําโดยอัตโนมัติผ่านการจําลอง API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ลูกค้าที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 ขึ้นไป ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (I9496c, b/345472586)
  • จาก Activity 1.9.2: แก้ไขปัญหาที่ Activity Compose PredictiveBackHandler API จะจัดการท่าทางสัมผัส "กลับ" ของระบบในเฟรมที่ปิดใช้ต่อไป ซึ่งอาจส่งผลให้ไลบรารีอย่าง Navigation Compose จัดการ "กลับ" แม้ว่าสแต็ก "กลับ" จะว่างเปล่าก็ตาม ส่งผลให้ระบบแสดง IndexOutOfBoundsException (Ie3301, b/340202286)
  • จากกิจกรรม 1.9.1: แก้ไขปัญหาเกี่ยวกับ PredictiveBackHandler ที่หลังจากการกู้คืนระบบแล้ว การพยายามทำ onBackPressed จาก OnBackPressedDispatcher จะดำเนินการไม่สำเร็จ (I5f1f8)

เวอร์ชัน 1.10.0-alpha01

26 มิถุนายน 2024

androidx.activity:activity:1.10.0-alpha01, androidx.activity:activity-compose:1.10.0-alpha01 และ androidx.activity:activity-ktx:1.10.0-alpha01 เผยแพร่แล้ว เวอร์ชันนี้พัฒนาในสาขาภายใน

ฟีเจอร์ใหม่

  • เพิ่มการรองรับฟีเจอร์ใหม่ของ PhotoPicker ที่เปิดตัวใน Android V ซึ่งรวมถึงความสามารถในการเลือกรูปภาพตามลำดับและเลือกแท็บ (อัลบั้มหรือรูปภาพ) ที่ควรแสดงในตอนแรก

เวอร์ชัน 1.9

เวอร์ชัน 1.9.3

16 ตุลาคม 2024

androidx.activity:activity:1.9.3, androidx.activity:activity-compose:1.9.3 และ androidx.activity:activity-ktx:1.9.3 เผยแพร่แล้ว เวอร์ชัน 1.9.3 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • PredictiveBackHandler จะไม่เรียกใช้การเรียกกลับอีกต่อไปหลังจากปิดใช้ตัวแฮนเดิล ซึ่งจะแก้ไขปัญหาที่ NavHost จาก Navigation Compose จะแสดง IndexOutOfBoundsException (I3f75e, b/340202286)

เวอร์ชัน 1.9.2

4 กันยายน 2024

androidx.activity:activity:1.9.2, androidx.activity:activity-compose:1.9.2 และ androidx.activity:activity-ktx:1.9.2 เผยแพร่แล้ว เวอร์ชัน 1.9.2 มี lthcocommits เหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ Activity Compose PredictiveBackHandler API จะจัดการท่าทางสัมผัส "กลับ" ของระบบในเฟรมที่ปิดอยู่ต่อไป ซึ่งอาจส่งผลให้ไลบรารีอย่าง Navigation Compose จัดการ "กลับ" แม้ว่าสแต็ก "กลับ" จะว่างเปล่าก็ตาม ส่งผลให้ระบบแสดง IndexOutOfBoundsException (Ie3301, b/340202286)

เวอร์ชัน 1.9.1

24 กรกฎาคม 2024

androidx.activity:activity:1.9.1, androidx.activity:activity-compose:1.9.1 และ androidx.activity:activity-ktx:1.9.1 เผยแพร่แล้ว เวอร์ชัน 1.9.1 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาเกี่ยวกับ PredictiveBackHandler ที่หลังจากการย้อนกลับระบบแล้ว การพยายามทำ onBackPressed จาก OnBackPressedDispatcher จะดำเนินการไม่สำเร็จ (I5f1f8)

เวอร์ชัน 1.9.0

17 เมษายน 2024

androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0 และ androidx.activity:activity-ktx:1.9.0 เผยแพร่แล้ว เวอร์ชัน 1.9.0 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.8.0

  • ตอนนี้ ComponentActivity ใช้ OnUserLeaveHintProvider เพื่ออนุญาตให้คอมโพเนนต์เรียกกลับสําหรับเหตุการณ์ onUserLeaveHint
  • ตอนนี้ API OnBackPressedCallback, BackHandler และ PredictiveBackHandler จะเตือนเมื่อเรียก onBackPressedDispatcher.onBackPressed() เมื่อจัดการการกดกลับ เนื่องจากการดำเนินการดังกล่าวจะทำลายภาพเคลื่อนไหวย้อนกลับแบบคาดเดาเสมอ ดูรายละเอียดเพิ่มเติมได้ที่คู่มือแนวทางปฏิบัติแนะนำ
  • ส่วน Activity API ที่เหลือได้รับการเขียนใหม่เป็น Kotlin และส่วนขยายทั้งหมดที่ใช้ได้ใน activity-ktx ก่อนหน้านี้ได้ย้ายไปยัง activity แล้ว activity-ktx ว่างเปล่าแล้ว
    • ในการแปลง ActivityResultLauncher เป็น Kotlin ตอนนี้เมธอด getContract กลายเป็นพร็อพเพอร์ตี้ Kotlin แบบนามธรรม การเปลี่ยนแปลงนี้เข้ากันได้กับไบนารี แต่จะไม่เข้ากันได้กับซอร์สโค้ดหากการใช้งาน ActivityResultLauncher เขียนด้วย Kotlin

เวอร์ชัน 1.9.0-rc01

3 เมษายน 2024

androidx.activity:activity:1.9.0-rc01, androidx.activity:activity-compose:1.9.0-rc01 และ androidx.activity:activity-ktx:1.9.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.9.0-rc01 มีการคอมมิตเหล่านี้

การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.9.0-beta01

20 มีนาคม 2024

androidx.activity:activity:1.9.0-beta01, androidx.activity:activity-compose:1.9.0-beta01 และ androidx.activity:activity-ktx:1.9.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.9.0-beta01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขการถดถอยของประสิทธิภาพการเริ่มต้นกิจกรรมที่พบใน Activity 1.9.0-alpha02 ซึ่งเกิดจากการเรียก OnBackPressedDispatcher เป็นส่วนหนึ่งของการสร้างกิจกรรม (Ie75e3)

เวอร์ชัน 1.9.0-alpha03

7 กุมภาพันธ์ 2024

androidx.activity:activity:1.9.0-alpha03, androidx.activity:activity-compose:1.9.0-alpha03 และ androidx.activity:activity-ktx:1.9.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha03 มีคอมมิตเหล่านี้

คำเตือนเกี่ยวกับ Lint

การแก้ไขข้อบกพร่อง

  • หากระบบส่งเหตุการณ์การกดย้อนกลับที่เริ่มต้นขึ้นขณะที่ท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์กำลังทำงานอยู่ ระบบจะยกเลิกท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ที่กำลังทำงานอยู่ และเหตุการณ์การกดย้อนกลับใหม่จะเข้ามาแทนที่เพื่อเริ่มท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ใหม่ (I3482e)
  • แก้ไขข้อขัดข้องเมื่อเข้าถึง onBackPressedDispatcher จาก ComponentActivity เป็นครั้งแรกจากเธรดเบื้องหลัง ตอนนี้คุณเข้าถึง onBackPressedDispatcher ในชุดข้อความใดก็ได้แล้ว (I79955)

เวอร์ชัน 1.9.0-alpha02

24 มกราคม 2024

androidx.activity:activity:1.9.0-alpha02, androidx.activity:activity-compose:1.9.0-alpha02 และ androidx.activity:activity-ktx:1.9.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha02 มีการคอมมิตเหล่านี้

Conversion ของ Kotlin

  • ActivityResultRegistry ได้รับการเขียนใหม่เป็น Kotlin แล้ว วิธีนี้ช่วยให้มั่นใจได้ว่า nullability ของพารามิเตอร์ทั่วไปในสัญญาที่ส่งไปยัง register จะส่งไปยัง ActivityResultLauncher ที่แสดงให้คุณเห็นอย่างถูกต้อง (I121f0)
  • ActivityResult ได้รับการเขียนใหม่เป็น Kotlin แล้ว เราได้ย้ายส่วนขยาย ActivityResult Kotlin ที่รองรับการจัดโครงสร้างใหม่ไปยังช่อง resultCode และ data จาก activity-ktx ไปยัง activity แล้ว (I0565a)
  • ย้ายส่วนขยาย Kotlin ของ by viewModels() สำหรับ ComponentActivity และ trackPipAnimationHintView จาก activity-ktx ไปยัง activity แล้ว ตอนนี้อาร์ติแฟกต์ activity-ktx ว่างเปล่าแล้ว (I0a444)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ enableEdgeToEdge API จะวาดรอบรอยบากของจอแสดงผล (a3644b, b/311173461)
  • จากกิจกรรม 1.8.2: แก้ไขส่วนเกินที่ส่งไปยัง ACTION_SYSTEM_FALLBACK_PICK_IMAGES ของสัญญากิจกรรมเครื่องมือเลือกรูปภาพให้ส่งคีย์ EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX อย่างถูกต้องแทนการใช้ส่วนเกินกับคีย์ "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" เราขอแนะนำอย่างยิ่งหากคุณเป็น OEM ที่ใช้เครื่องมือเลือกรูปภาพสำรองของระบบเพื่อรองรับทั้งฟีเจอร์เสริมเพื่อให้มั่นใจว่าอุปกรณ์จะใช้งานร่วมกันได้มากที่สุด (I96a00)

เวอร์ชัน 1.9.0-alpha01

29 พฤศจิกายน 2023

androidx.activity:activity:1.9.0-alpha01, androidx.activity:activity-compose:1.9.0-alpha01 และ androidx.activity:activity-ktx:1.9.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentActivity ใช้ OnUserLeaveHintProvider เพื่ออนุญาตให้คอมโพเนนต์เรียกกลับสําหรับเหตุการณ์ onUserLeaveHint (I54892)

การเปลี่ยนแปลง API

  • ComponentActivity ได้รับการเขียนใหม่เป็น Kotlin แล้ว (I14f31)
  • ActivityResultCaller ได้รับการเขียนใหม่เป็น Kotlin แล้ว (Ib02e4)
  • ActivityResultLauncher ได้รับการเขียนใหม่เป็น Kotlin แล้ว ในการแปลงดังกล่าว เมธอด getContract กลายเป็นพร็อพเพอร์ตี้ Kotlin นามธรรม การเปลี่ยนแปลงนี้เข้ากันได้กับไบนารี แต่จะไม่เข้ากันได้กับซอร์สโค้ดหากการใช้งาน ActivityResultLauncher เขียนด้วย Kotlin (Id4615)
  • ตอนนี้ PickVisualMediaRequest มี API ระดับต่ำสุด 19 เช่นเดียวกับสัญญาผลลัพธ์กิจกรรม PickVisualMedia (Id6e21)

อัปเดตทรัพยากร Dependency

เวอร์ชัน 1.8

เวอร์ชัน 1.8.2

13 ธันวาคม 2023

androidx.activity:activity:1.8.2, androidx.activity:activity-compose:1.8.2 และ androidx.activity:activity-ktx:1.8.2 เผยแพร่แล้ว เวอร์ชัน 1.8.2 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขส่วนเพิ่มเติมที่ส่งไปยัง ACTION_SYSTEM_FALLBACK_PICK_IMAGES ของสัญญากิจกรรมเครื่องมือเลือกรูปภาพให้ส่งคีย์ EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX อย่างถูกต้องแทนที่จะใช้ส่วนเพิ่มเติมกับคีย์ "com.google.android.gms.provider.extra.PICK_IMAGES_MAX" เราขอแนะนำอย่างยิ่งหากคุณเป็น OEM ที่ใช้เครื่องมือเลือกรูปภาพสำรองของระบบเพื่อรองรับทั้งฟีเจอร์เสริมเพื่อให้มั่นใจว่าอุปกรณ์จะใช้งานร่วมกันได้มากที่สุด (I96a00)

เวอร์ชัน 1.8.1

15 พฤศจิกายน 2023

androidx.activity:activity:1.8.1, androidx.activity:activity-compose:1.8.1 และ androidx.activity:activity-ktx:1.8.1 เผยแพร่แล้ว เวอร์ชัน 1.8.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ OnBackPressedDispatcher จะยังคงส่งไปยัง OnBackPressedCallback ที่ถูกต้องต่อไปแม้ว่าจะมีการเพิ่ม OnBackPressedCallback ใหม่ขณะที่จัดการท่าทางสัมผัสกลับ (Id0ff6)

เวอร์ชัน 1.8.0

4 ตุลาคม 2023

androidx.activity:activity:1.8.0, androidx.activity:activity-compose:1.8.0 และ androidx.activity:activity-ktx:1.8.0 เผยแพร่แล้ว เวอร์ชัน 1.8.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.7.0

  • การย้อนกลับที่คาดการณ์ได้ - ตอนนี้ OnBackPressedCallback มี Callback ใหม่สำหรับการย้อนกลับที่คาดการณ์ได้เพื่อจัดการกับการเริ่มท่าทางสัมผัสการย้อนกลับ ความคืบหน้าตลอดท่าทางสัมผัส และการยกเลิกท่าทางสัมผัสการย้อนกลับ นอกเหนือจาก Callback ของ handleOnBackPressed() ก่อนหน้านี้สำหรับเมื่อมีการยืนยันท่าทางสัมผัสการย้อนกลับ การดำเนินการนี้ยังมี PredictiveBackHandler Composable เพื่อจัดการเหตุการณ์ท่าทางสัมผัสเพื่อกลับแบบคาดการณ์ใน Activity Compose ด้วย ซึ่งจะแสดงรายการ BackEventCompat ที่ต้องรวบรวมใน Lamba ที่ระงับที่คุณระบุ
  PredictiveBackHandler { progress: Flow<BackEventCompat> ->
    // code for gesture back started
    try {
      progress.collect { backEvent ->
      // code for progress
    }
    // code for completion
    } catch (e: CancellationException) {
      // code for cancellation
    }
  }

ตอนนี้เราเลิกใช้งาน ComponentActivity.onBackPressed() แล้วเพื่อหันมาใช้ API สำหรับการจัดการการย้อนกลับ ตอนนี้นักพัฒนาแอปควรใช้ OnBackPressedDispatcher แทนการลบล้างเมธอดนี้

  • EdgeToEdge - เพิ่ม ComponentActivity.enableEdgeToEdge() เพื่อช่วยในการตั้งค่าจอแสดงผลแบบเต็มขอบได้อย่างง่ายดายในลักษณะที่เข้ากันได้แบบย้อนหลัง

เวอร์ชัน 1.8.0-rc01

20 กันยายน 2023

androidx.activity:activity:1.8.0-rc01, androidx.activity:activity-compose:1.8.0-rc01 และ androidx.activity:activity-ktx:1.8.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.8.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.8.0-beta01

6 กันยายน 2023

androidx.activity:activity:1.8.0-beta01, androidx.activity:activity-compose:1.8.0-beta01 และ androidx.activity:activity-ktx:1.8.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.8.0-beta01 มีการคอมมิตเหล่านี้

การปรับปรุงเอกสารประกอบ

  • ปรับปรุงเอกสารประกอบของ BackEventCompat (aosp/2722254)

เวอร์ชัน 1.8.0-alpha07

23 สิงหาคม 2023

androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07 และ androidx.activity:activity-ktx:1.8.0-alpha07 เผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha07 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • Activity Compose ได้เพิ่ม PredictiveBackHandler Composable ใหม่เพื่อจัดการเหตุการณ์ท่าทางสัมผัสย้อนกลับแบบคาดการณ์ ซึ่งจะแสดง Flow ของออบเจ็กต์ BackEventCompat ที่ต้องรวบรวมใน Lamba ที่ระงับที่คุณระบุ

    PredictiveBackHandler { progress: Flow<BackEventCompat> ->
      // code for gesture back started
      try {
        progress.collect { backEvent ->
        // code for progress
      }
      // code for completion
      } catch (e: CancellationException) {
        // code for cancellation
      }
    }
    

    นอกจากนี้ยังมีคำเตือนเกี่ยวกับเวลาคอมไพล์ผ่านกฎ Lint เพื่อให้แน่ใจว่า Flow เรียก collect() (Id2773, b/294884345)

  • ตอนนี้ onBackPressedDispatcher ใน ComponentActivity จะเริ่มต้นแบบเลื่อนเวลาเพื่อให้ระบบสร้างเมื่อจำเป็นเท่านั้น (I0bf8e)

การแก้ไขข้อบกพร่อง

  • ComponentActivity จะไม่แสดง NPE ใน Android 13 อีกต่อไปเมื่อได้รับการเรียกกลับ onBackPressed() และกิจกรรมได้รับการ DESTROYED แล้ว (Idb055, b/291869278)
  • นำการใช้งาน isAtLeastU() API เวอร์ชันทดลองออก (Ie9117, b/289269026)

เวอร์ชัน 1.8.0-alpha06

21 มิถุนายน 2023

androidx.activity:activity:1.8.0-alpha06, androidx.activity:activity-compose:1.8.0-alpha06 และ androidx.activity:activity-ktx:1.8.0-alpha06 เผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha06 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ OnBackPressedDispatcher จะยกเลิกการเรียกกลับที่ถูกนำออกระหว่างท่าทางสัมผัสเพื่อกลับโดยประมาณอย่างถูกต้อง (I3f90f)

การเปลี่ยนแปลง API

  • เมื่อส่ง SystemBarStyle.auto ไปยัง enableEdgeToEdge API ตอนนี้คุณสามารถลบล้างพารามิเตอร์ Lambda detectDarkMode เพื่อระบุตรรกะที่กำหนดเองสำหรับการตรวจหาโหมดกลางคืนได้แล้ว (aosp/2546393, b/278263793)

เวอร์ชัน 1.8.0-alpha05

7 มิถุนายน 2023

androidx.activity:activity:1.8.0-alpha05, androidx.activity:activity-compose:1.8.0-alpha05 และ androidx.activity:activity-ktx:1.8.0-alpha05 เผยแพร่แล้ว เวอร์ชันนี้พัฒนาในสาขาภายใน

การเปลี่ยนแปลง API

  • ตอนนี้ Activity มีคลาส BackEventCompat ที่ทำหน้าที่เป็น BackEvent เวอร์ชันที่เข้ากันได้แบบย้อนหลังซึ่งแยกออกจากคลาส BackEvent ของเฟรมเวิร์ก
  • การเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้อง: ตอนนี้เมธอด handleOnBackStarted และ handleOnBackProgressed ของ OnBackPressedCallback จะรับอินสแตนซ์ androidx.activity.BackEventCompat แทนคลาส android.window.BackEvent ของเฟรมเวิร์ก นอกจากนี้ เรายังได้อัปเดต @VisibleForTesting API ที่เทียบเท่าใน OnBackPressedDispatcher ด้วย
  • ตอนนี้เครื่องมือสร้างสำหรับ OnBackPressedDispatcher จะรับอินสแตนซ์ Consumer<Boolean> ที่ไม่บังคับ ซึ่งช่วยให้เจ้าของตัวจัดเส้นทางได้รับ Callback ทุกครั้งที่จำนวน Callback ที่เปิดใช้เปลี่ยนจาก 0 เป็นค่าที่ไม่ใช่ 0 หรือในทางกลับกัน

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.7.2: แก้ไขข้อขัดข้องของ ReportDrawn เมื่อออกจากหน้าจอก่อนที่จะเรียกใช้ report (Ic46f1, b/260506820)

เวอร์ชัน 1.8.0-alpha04

10 พฤษภาคม 2023

androidx.activity:activity:1.8.0-alpha04, androidx.activity:activity-compose:1.8.0-alpha04 และ androidx.activity:activity-ktx:1.8.0-alpha04 เผยแพร่แล้ว เวอร์ชันนี้เผยแพร่จากสาขาภายใน

การแก้ไขข้อบกพร่อง

เวอร์ชัน 1.8.0-alpha03

12 เมษายน 2023

androidx.activity:activity:1.8.0-alpha03, androidx.activity:activity-compose:1.8.0-alpha03 และ androidx.activity:activity-ktx:1.8.0-alpha03 เผยแพร่แล้ว เวอร์ชันนี้เผยแพร่จากสาขาภายใน

ฟีเจอร์ใหม่

  • เพิ่ม ComponentActivity.setUpEdgeToEdge() เพื่อให้ตั้งค่าจอแสดงผลแบบเต็มขอบได้อย่างง่ายดายในลักษณะที่เข้ากันได้แบบย้อนหลัง

การเปลี่ยนแปลง API

  • ตอนนี้เราเลิกใช้งาน ComponentActivity.onBackPressed() แล้วเพื่อหันมาใช้ API สำหรับการจัดการการย้อนกลับ ตอนนี้นักพัฒนาแอปควรใช้ OnBackPressedDispatcher แทนการลบล้างเมธอดนี้ (Ibce2f, b/271596918)
  • ตอนนี้ ComponentDialog และ ComponentActivity มี API สาธารณะ initViewTreeOwners() ที่จะใช้ในการเริ่มต้นเจ้าของต้นไม้มุมมองทั้งหมดก่อนที่จะตั้งค่ามุมมองเนื้อหา (Ibdce0, b/261314581)

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ Framgnet ทำให้ MenuHost เป็นโมฆะอย่างไม่ถูกต้องและทําให้เมนูอื่นๆ ในกิจกรรมมีลักษณะการทำงานที่ไม่คาดคิด (I9404e, b/244336571)

การเปลี่ยนแปลงอื่นๆ

  • ตอนนี้ ActivityResultRegister ใช้ Kotlin Random แทน Java (I4d98f, b/272096025)

เวอร์ชัน 1.8.0-alpha02

8 มีนาคม 2023

androidx.activity:activity:1.8.0-alpha02, androidx.activity:activity-compose:1.8.0-alpha02 และ androidx.activity:activity-ktx:1.8.0-alpha02 เผยแพร่แล้ว พัฒนาจากสาขาภายใน

การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.8.0-alpha01

8 กุมภาพันธ์ 2023

androidx.activity:activity:1.8.0-alpha01, androidx.activity:activity-compose:1.8.0-alpha01 และ androidx.activity:activity-ktx:1.8.0-alpha01 เผยแพร่แล้ว สร้างขึ้นจากสาขาภายใน

ฟีเจอร์ใหม่

  • ตอนนี้คลาส OnBackPressedCallback มีการเรียกกลับความคืบหน้าของท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้ใหม่สำหรับการจัดการการเริ่มท่าทางสัมผัสการย้อนกลับ ความคืบหน้าตลอดท่าทางสัมผัส และการยกเลิกท่าทางสัมผัสการย้อนกลับ นอกเหนือจากการเรียกกลับ handleOnBackPressed() ก่อนหน้านี้สำหรับเมื่อมีการเริ่มท่าทางสัมผัสการย้อนกลับ

เวอร์ชัน 1.7

เวอร์ชัน 1.7.2

24 พฤษภาคม 2023

androidx.activity:activity:1.7.2, androidx.activity:activity-compose:1.7.2 และ androidx.activity:activity-ktx:1.7.2 เผยแพร่แล้ว เวอร์ชัน 1.7.2 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องของ ReportDrawn เมื่อออกจากหน้าจอก่อนที่จะมีการเรียก report (Ic46f1, b/260506820)

เวอร์ชัน 1.7.1

19 เมษายน 2023

androidx.activity:activity:1.7.1, androidx.activity:activity-compose:1.7.1 และ androidx.activity:activity-ktx:1.7.1 เผยแพร่แล้ว เวอร์ชัน 1.7.1 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ReportFullyDrawExecuter ไม่มีการรั่วไหลอีกต่อไปเมื่อใช้ ComponentActivity กับ ActivityScenario (Id2ff2, b/277434271)

เวอร์ชัน 1.7.0

22 มีนาคม 2023

androidx.activity:activity:1.7.0, androidx.activity:activity-compose:1.7.0 และ androidx.activity:activity-ktx:1.7.0 เผยแพร่แล้ว เวอร์ชัน 1.7.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.6.0

  • สัญญากิจกรรมเครื่องมือเลือกรูปภาพใน PickVisualMedia และ PickMultipleVisualMedia ได้รับการอัปเดตให้มีการดำเนินการสำรองเพิ่มเติมในกรณีที่ MediaStore.ACTION_PICK_IMAGES ไม่พร้อมใช้งาน ซึ่งจะช่วยให้ OEM และแอประบบ เช่น บริการ Google Play มอบประสบการณ์การใช้งานเครื่องมือเลือกรูปภาพที่สอดคล้องกันในอุปกรณ์ Android และระดับ API ที่หลากหลายมากขึ้นด้วยการใช้การดำเนินการสำรอง เครื่องมือเลือกรูปภาพจะใช้ตัวเลือกสำรองนี้หากมีก่อนที่จะเปลี่ยนไปใช้ Intent.ACTION_OPEN_DOCUMENT ซึ่งยังคงรองรับอุปกรณ์ API ระดับ 19 ขึ้นไปทั้งหมด
  • ตอนนี้ ComponentDialog ใช้ SavedStateRegistryOwner และมีสิทธิ์เข้าถึง SavedStateRegistry ของตนเอง รวมถึงตั้งค่า SavedStateRegistryOwner สําหรับ ViewTree ตอนนี้คุณใช้ Jetpack Compose ภายใน ComponentDialog ได้แล้ว เนื่องจากเป็นไปตามข้อกำหนดของ LifecycleOwner และ SavedStateRegistryOwner ที่แนบมากับ Window ผ่าน ViewTree API
  • ตอนนี้ IntentSenderRequest.Builder.setFlags() อนุญาตให้คุณตั้งค่า Flag หลายรายการจาก Intent ได้ ไม่ใช่แค่ Flag รายการเดียว

การเปลี่ยนรูปแบบเป็น Kotlin

มีคลาส Activity บางคลาสที่แปลงเป็น Kotlin แล้ว ชั้นเรียนที่แปลงแล้วทั้งหมดจะยังคงเข้ากันได้กับไบนารีของเวอร์ชันก่อนหน้า คลาสต่อไปนี้มีการเปลี่ยนแปลงที่เข้ากันไม่ได้กับซอร์สโค้ดสำหรับคลาสที่เขียนด้วย Kotlin: ActivityResultRegistryOwner, OnBackPressedDispatcherOwner

ตารางด้านล่างแสดง Conversion แหล่งที่มาสําหรับกิจกรรมเวอร์ชันใหม่

กิจกรรม 1.5 กิจกรรม 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

คลาสเหล่านี้ยังได้รับการแปลงเป็น Kotlin ด้วย แต่ยังคงเข้ากันได้กับซอร์สโค้ด ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest และ OnBackPressedDispatcher

FullyDrawnReporter API

ตอนนี้ ComponentActivity มีอินสแตนซ์ FullyDrawnReporter ที่ช่วยให้คอมโพเนนต์หลายรายการรายงานได้เมื่อพร้อมสําหรับการโต้ตอบ ComponentActivity จะรอให้คอมโพเนนต์ทั้งหมดเสร็จสมบูรณ์ก่อนที่จะเรียกใช้ reportFullyDrawn() ในนามของคุณ API เหล่านี้จะจัดการข้อกำหนดด้านเวลาให้คุณและไม่จำเป็นต้องเรียกใช้เป็นส่วนหนึ่งของการเรียก onDraw

เราขอแนะนำให้เปิดใช้ API ต่อไปนี้

  • ส่งสัญญาณไปยังรันไทม์ Android เมื่อการเริ่มต้นทำงานเสร็จสมบูรณ์ เพื่อให้แน่ใจว่าโค้ดทั้งหมดที่ทำงานระหว่างลําดับการเริ่มต้นแบบหลายเฟรมจะรวมอยู่และได้รับการจัดลําดับความสําคัญสําหรับการคอมไพล์เบื้องหลัง
  • การส่งสัญญาณ Macrobenchmark และ Play Vitals เมื่อแอปพลิเคชันควรได้รับการพิจารณาว่าดึงข้อมูลเมตริกการเริ่มต้นอย่างเต็มรูปแบบแล้ว เพื่อให้คุณติดตามประสิทธิภาพได้

เราได้เพิ่ม Activity Compose API 3 รายการเพื่อให้ใช้ FullyDrawnReporter จากคอมโพสิเบิลแต่ละรายการได้สะดวกยิ่งขึ้น ดังนี้

  • ReportDrawn บ่งบอกว่าคอมโพสิเบิลของคุณพร้อมสำหรับการโต้ตอบทันที
  • ReportDrawnWhen ใช้พริเนกต์ (เช่น list.count > 0) เพื่อระบุว่าคอมโพสิเบิลของคุณพร้อมสำหรับการโต้ตอบแล้ว
  • ReportDrawnAfter ใช้เมธอดการระงับ ซึ่งเมื่อดำเนินการเสร็จแล้ว แสดงว่าคุณพร้อมสำหรับการโต้ตอบ

การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.7.0-rc01

8 มีนาคม 2023

androidx.activity:activity:1.7.0-rc01, androidx.activity:activity-compose:1.7.0-rc01 และ androidx.activity:activity-ktx:1.7.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.7.0-rc01 มีการคอมมิตเหล่านี้

การอัปเดตทรัพยากร Dependency

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับ Lifecycle 2.6.0

เวอร์ชัน 1.7.0-beta02

22 กุมภาพันธ์ 2023

androidx.activity:activity:1.7.0-beta02, androidx.activity:activity-compose:1.7.0-beta02 และ androidx.activity:activity-ktx:1.7.0-beta02 เผยแพร่แล้ว เวอร์ชัน 1.7.0-beta02 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้การดำเนินการและข้อมูลเพิ่มเติมที่ใช้โดยสัญญา PickVisualMedia และ PickMultipleVisualMedia เป็นการดำเนินการสำรองในกรณีที่ MediaStore.ACTION_PICK_IMAGES ไม่พร้อมใช้งานได้กลายเป็นค่าคงที่แบบสาธารณะที่ให้ความเสถียรของ API แก่ OEM และแอประบบที่ต้องการมอบประสบการณ์การใช้งานเครื่องมือเลือกรูปภาพที่สอดคล้องกัน การใช้งานทางเลือกนี้ยังคงจำกัดไว้สำหรับแอประบบเท่านั้น (Icd320)

เวอร์ชัน 1.7.0-beta01

8 กุมภาพันธ์ 2023

androidx.activity:activity:1.7.0-beta01, androidx.activity:activity-compose:1.7.0-beta01 และ androidx.activity:activity-ktx:1.7.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.7.0-beta01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ IntentSenderRequest.Builder.setFlags() อนุญาตให้คุณตั้งค่า Flag หลายรายการจาก Intent ได้ ไม่ใช่แค่ Flag รายการเดียว (Iac04c)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ตัวเลือกสำรองสำหรับ PickVisualMedia เมื่อเครื่องมือเลือกรูปภาพของเฟรมเวิร์กไม่พร้อมใช้งานจะจำกัดการจัดการให้ถูกต้องในแอปที่ติดตั้งในอิมเมจระบบของอุปกรณ์ (If8ae6)

Conversion ของ Kotlin

  • ActivityResultRegistryOwner เขียนด้วย Kotlin แล้ว นี่เป็นการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งที่มาสําหรับคลาสที่เขียนด้วย Kotlin ตอนนี้คุณต้องลบล้างพร็อพเพอร์ตี้ activityResultRegistry แทนการใช้ฟังก์ชัน getActivityResultRegistry() ก่อนหน้านี้ (I0b00e)
  • OnBackPressedDispatcherOwner เขียนด้วย Kotlin แล้ว นี่เป็นการเปลี่ยนแปลงที่เข้ากันไม่ได้กับแหล่งที่มาสําหรับคลาสที่เขียนด้วย Kotlin ตอนนี้คุณต้องลบล้างพร็อพเพอร์ตี้ onBackPressedDispatcher แทนการใช้ฟังก์ชัน getOnBackPressedDispatcher ก่อนหน้านี้ (Ia277d)
  • ตอนนี้ ContextAware, ContextAwareHelper, OnContextAvailableListener, IntentSenderRequest และ OnBackPressedDispatcher เขียนด้วย Kotlin แล้ว (I1a73e, Iada92, aosp/2410754, I18ac7, b/257291701)

เวอร์ชัน 1.7.0-alpha04

25 มกราคม 2023

androidx.activity:activity:1.7.0-alpha04, androidx.activity:activity-compose:1.7.0-alpha04 และ androidx.activity:activity-ktx:1.7.0-alpha04 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha04 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้สัญญาผลลัพธ์กิจกรรม PickVisualMedia และ PickMultipleVisualMedia จะใช้เครื่องมือเลือกรูปภาพที่บริการของ Google Play มีให้ (หากมี) ในกรณีที่ระบบ Android มีเครื่องมือเลือกรูปภาพให้ (เช่น MediaStore.ACTION_PICK_IMAGES) ไม่พร้อมใช้งาน เราได้เลิกใช้งาน isPhotoPickerAvailable() API ที่ตรวจหาเฉพาะเครื่องมือเลือกรูปภาพที่ระบบ Android มีให้แล้ว เราขอแนะนำให้ใช้ isPhotoPickerAvailable(Context) API ใหม่ ซึ่งจะแสดงผลหากเครื่องมือเลือกรูปภาพใดรูปภาพหนึ่งพร้อมใช้งาน (I55be6)

เวอร์ชัน 1.7.0-alpha03

11 มกราคม 2023

androidx.activity:activity:1.7.0-alpha03, androidx.activity:activity-compose:1.7.0-alpha03 และ androidx.activity:activity-ktx:1.7.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha03 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentDialog ใช้ SavedStateRegistryOwner และมีสิทธิ์เข้าถึง SavedStateRegistry ของตนเอง รวมถึงตั้งค่า SavedStateRegistryOwner สําหรับ ViewTree ของตน ตอนนี้คุณใช้ Jetpack Compose ภายใน ComponentDialog ได้แล้ว เนื่องจากเป็นไปตามข้อกําหนดของทั้ง LifecycleOwner และ SavedStateRegistryOwner ที่แนบมากับ Window ผ่าน ViewTree API (Idca17, I73468 b/261162296)

การเปลี่ยนแปลง API

  • เพิ่มคอมโพสิเบิล ReportDrawn ที่ทำเครื่องหมายกิจกรรมว่าพร้อมเรียกใช้ reportFullyDrawn ทันที (Ic5b14, b/259687964)

Conversion ของ Kotlin

  • คลาส ActvitiyResultCallback และ OnBackPressedCallback ได้รับการแปลงเป็น Kotlin แล้วโดยยังคงความเข้ากันได้ของซอร์สโค้ดและไบนารี (Ifc5e5, Ide1b0, b/257291701)

เวอร์ชัน 1.7.0-alpha02

24 ตุลาคม 2022

androidx.activity:activity:1.7.0-alpha02, androidx.activity:activity-compose:1.7.0-alpha02 และ androidx.activity:activity-ktx:1.7.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.6.1: แก้ไขปัญหาสัญญาผลลัพธ์กิจกรรม PickMultipleVisualMedia ไม่เปิดในอุปกรณ์ Android R เมื่อใช้ค่าเริ่มต้นสําหรับ maxItems (Ie2776, b/249182130)

เวอร์ชัน 1.7.0-alpha01

5 ตุลาคม 2022

androidx.activity:activity:1.7.0-alpha01, androidx.activity:activity-compose:1.7.0-alpha01 และ androidx.activity:activity-ktx:1.7.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha01 มีการคอมมิตเหล่านี้

FullyDrawnReporter API

ตอนนี้ ComponentActivity มีอินสแตนซ์ FullyDrawnReporter ที่ช่วยให้คอมโพเนนต์หลายรายการรายงานได้เมื่อพร้อมสําหรับการโต้ตอบ ComponentActivity จะรอให้คอมโพเนนต์ทั้งหมดเสร็จสมบูรณ์ก่อนที่จะเรียกใช้ reportFullyDrawn() ในนามของคุณ API เหล่านี้จะจัดการข้อกำหนดด้านเวลาให้คุณและไม่จำเป็นต้องเรียกใช้เป็นส่วนหนึ่งของการเรียก onDraw

เราขอแนะนำให้เปิดใช้ API ต่อไปนี้

  • ส่งสัญญาณไปยังรันไทม์ Android เมื่อการเริ่มต้นทำงานเสร็จสมบูรณ์ เพื่อให้แน่ใจว่าโค้ดทั้งหมดที่ทำงานระหว่างลําดับการเริ่มต้นแบบหลายเฟรมจะรวมอยู่และได้รับการจัดลําดับความสําคัญสําหรับการคอมไพล์เบื้องหลัง
  • การส่งสัญญาณ Macrobenchmark และ Play Vitals เมื่อแอปพลิเคชันควรได้รับการพิจารณาว่าดึงข้อมูลเมตริกการเริ่มต้นอย่างเต็มรูปแบบแล้ว เพื่อให้คุณติดตามประสิทธิภาพได้

เราได้เพิ่ม Activity Compose API 2 รายการเพื่อให้ใช้ FullyDrawnReporter จากคอมโพสิเบิลแต่ละรายการได้สะดวกยิ่งขึ้น

  • ReportDrawnWhen ใช้พริเนกต์ (เช่น list.count > 0) เพื่อระบุว่าคอมโพสิเบิลของคุณพร้อมสำหรับการโต้ตอบแล้ว
  • ReportDrawnAfter ใช้เมธอดการระงับ ซึ่งเมื่อดำเนินการเสร็จแล้ว แสดงว่าคุณพร้อมสำหรับการโต้ตอบ

เวอร์ชัน 1.6.1

เวอร์ชัน 1.6.1

24 ตุลาคม 2022

androidx.activity:activity:1.6.1, androidx.activity:activity-compose:1.6.1 และ androidx.activity:activity-ktx:1.6.1 เผยแพร่แล้ว เวอร์ชัน 1.6.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ปัญหาที่สัญญาผลลัพธ์ของ PickMultipleVisualMedia ไม่เปิดในอุปกรณ์ Android R เมื่อใช้ค่าเริ่มต้นสำหรับ maxItems (Ie2776, b/249182130)

เวอร์ชัน 1.6.0

เวอร์ชัน 1.6.0

21 กันยายน 2022

androidx.activity:activity:1.6.0, androidx.activity:activity-compose:1.6.0 และ androidx.activity:activity-ktx:1.6.0 เผยแพร่แล้ว เวอร์ชัน 1.6.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.5.0

  • เพิ่ม ActivityResultContracts.PickVisualMedia และ ActivityResultContracts.PickMultipleVisualMedia เพื่อระบุสัญญาที่เข้ากันได้แบบย้อนหลังซึ่งใช้ MediaStore.ACTION_PICK_IMAGES เมื่อเครื่องมือเลือกรูปภาพพร้อมใช้งาน และ Intent.ACTION_OPEN_DOCUMENT เมื่อเครื่องมือไม่พร้อมใช้งาน
  • ผสานรวม OnBackInvokedCallback ใน Android 13 เข้ากับ OnBackPressedDispatchers ที่ ComponentActivity และ ComponentDialog ให้บริการ ซึ่งช่วยให้มั่นใจว่า API ทั้งหมดที่สร้างบนOnBackPressedDispatcherจะทำงานได้เมื่อเปิดใช้ท่าทางสัมผัสย้อนกลับแบบคาดการณ์

เวอร์ชัน 1.6.0-rc02

7 กันยายน 2022

androidx.activity:activity:1.6.0-rc02, androidx.activity:activity-compose:1.6.0-rc02 และ androidx.activity:activity-ktx:1.6.0-rc02 เผยแพร่แล้ว เวอร์ชัน 1.6.0-rc02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ OnBackPressedDispatcher ลงทะเบียน OnBackInvokedCallback กับ PRIORITY_DEFAULT แทน PRIORITY_OVERLAY (I3901f)
  • ตอนนี้คลาสที่ขยาย ComponentActivity จะส่ง onMultiWindowModeChanged() callback ทั้ง 2 รายการเสมอ (Ic4d85)
  • ActivityResultRegistry จะไม่แสดงผลลัพธ์ไปยัง ActivityResultCallback อีกต่อไปเมื่อการเรียก launch แสดง Exception และมีการลงทะเบียนการเรียกกลับโดยไม่มี LifecycleOwner (Ia7ff7, b/238350794)
  • ตอนนี้ ComponentActivity จะส่งคําเรียกเมนูอย่างถูกต้องโดยไม่ต้องเรียกใช้ฟังก์ชัน super ในกิจกรรม (Ie33c5, b/238057118)

อัปเดตทรัพยากร Dependency

เวอร์ชัน 1.6.0-rc01

24 สิงหาคม 2022

androidx.activity:activity:1.6.0-rc01, androidx.activity:activity-compose:1.6.0-rc01 และ androidx.activity:activity-ktx:1.6.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.6.0-rc01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • การเปิดใช้งาน OnBackPressedDispatcher จะไม่ทำให้เกิด ClassVerificationError อีกต่อไปเมื่อใช้ SDK เวอร์ชันก่อน 33 (Ic32e1)
  • ตอนนี้คลาสที่ลบล้างการเรียกคืน onPictureInPictureModeChanged() ของ ComponentActivity จะเรียกใช้การเรียกคืนเสมอ (Ib7fdb)

เวอร์ชัน 1.6.0-beta01

10 สิงหาคม 2022

androidx.activity:activity:1.6.0-beta01, androidx.activity:activity-compose:1.6.0-beta01 และ androidx.activity:activity-ktx:1.6.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.6.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ทำเครื่องหมายเมธอด startActivityForResult และ startIntentSenderForResult ที่เลิกใช้งานใน ComponentActivity ด้วย @NonNull เนื่องจากการส่ง null ส่งผลให้เกิดข้อขัดข้องเสมอ (Id2a25, b/231476082)

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.5.1: ActivityResultRegistry จะไม่แสดงผลลัพธ์ไปยัง ActivityResultCallback อีกต่อไปเมื่อการเรียก launch แสดงException และมีการลงทะเบียนการเรียกกลับโดยไม่มี LifecycleOwner (Ia7ff7, b/238350794)
  • จากกิจกรรม 1.5.1: ตอนนี้ ComponentActivity จะส่งการเรียกเมนูไปยัง onPrepareOptionMenu(), onCreateOptionsMenu() และ onOptionsItemSelected() โดยไม่จําเป็นต้องเรียกฟังก์ชัน Super (Ie33c5, b/238057118)

อัปเดตทรัพยากร Dependency

  • จากกิจกรรม 1.5.1: ตอนนี้ไลบรารี Activity จะขึ้นอยู่กับLifecycle เวอร์ชัน 2.5.1 (If6697)

เวอร์ชัน 1.6.0-alpha05

15 มิถุนายน 2022

androidx.activity:activity:1.6.0-alpha05, androidx.activity:activity-compose:1.6.0-alpha05 และ androidx.activity:activity-ktx:1.6.0-alpha05 เผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha05 พัฒนาขึ้นในสาขารุ่นก่อนเปิดตัวแบบส่วนตัวและไม่มีการคอมมิตแบบสาธารณะ

การเปลี่ยนแปลง API

  • minCompileSdk เปลี่ยนเป็น 33 เพื่อให้สอดคล้องกับ SDK ของ Tiramisu เบต้า 3

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องในอุปกรณ์รุ่นเก่าเมื่อทำการตรวจสอบส่วนขยาย SDK สำหรับ PickVisualMedia ActivityResultContract เพื่อให้ตอนนี้ทำงานร่วมกับ ACTION_OPEN_DOCUMENT ในอุปกรณ์ที่ใช้ Android 10 และต่ำกว่าได้

เวอร์ชัน 1.6.0-alpha04

18 พฤษภาคม 2022

androidx.activity:activity:1.6.0-alpha04 และ androidx.activity:activity-ktx:1.6.0-alpha04 เผยแพร่แล้ว

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อผิดพลาดใน PickVisualMediaRequest ที่การพยายามสร้างคำขอผ่าน Builder หรือฟังก์ชัน Kotlin ระดับบนสุดจะส่งผลให้เกิดสแต็กที่ล้น
  • ผสานรวม OnBackInvokedCallback ใน Android 13 Dev Beta 2 เข้ากับ OnBackPressedDispatcher ที่ ComponentDialog ให้มา ซึ่งช่วยให้มั่นใจว่า API ทั้งหมดที่สร้างใน OnBackPressedDispatcher จะทำงานได้เมื่อเปิดใช้ท่าทางสัมผัสย้อนกลับแบบคาดการณ์

เวอร์ชัน 1.6.0-alpha03

27 เมษายน 2022

androidx.activity:activity:1.6.0-alpha03, androidx.activity:activity-compose:1.6.0-alpha03 และ androidx.activity:activity-ktx:1.6.0-alpha03 เผยแพร่แล้ว

  • หมายเหตุ: เวอร์ชันนี้จะคอมไพล์กับ SDK ของ Android 13 Developer Beta 1 เท่านั้น

ฟีเจอร์ใหม่

  • เพิ่ม ActivityResultContracts.PickVisualMedia และ ActivityResultContracts.PickMultipleVisualMedia เพื่อระบุสัญญาที่เข้ากันได้แบบย้อนหลังซึ่งใช้ MediaStore.ACTION_PICK_IMAGES เมื่อเครื่องมือเลือกรูปภาพพร้อมใช้งาน และ Intent.ACTION_OPEN_DOCUMENT เมื่อเครื่องมือไม่พร้อมใช้งาน
  • ผสานรวม OnBackInvokedCallback ใน Android 13 Dev Beta 1 เข้ากับ OnBackPressedDispatcher ที่ ComponentActivity ให้มา ซึ่งช่วยให้มั่นใจว่า API ทั้งหมดที่สร้างใน OnBackPressedDispatcher จะทำงานได้เมื่อเปิดใช้ท่าทางสัมผัสย้อนกลับแบบคาดการณ์

เวอร์ชัน 1.6.0-alpha01

23 มีนาคม 2022

androidx.activity:activity:1.6.0-alpha01, androidx.activity:activity-compose:1.6.0-alpha01 และ androidx.activity:activity-ktx:1.6.0-alpha01 เผยแพร่แล้ว

  • หมายเหตุ: เวอร์ชันนี้จะคอมไพล์กับ SDK ของ Android 13 Developer Preview 2 เท่านั้น

ฟีเจอร์ใหม่

  • ผสานรวมการเปลี่ยนแปลงในตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์รุ่นที่ 2 ของ Android 13 ไว้ใน ComponentActivity

รุ่น 1.5.1

รุ่น 1.5.1

27 กรกฎาคม 2022

androidx.activity:activity:1.5.1, androidx.activity:activity-compose:1.5.1 และ androidx.activity:activity-ktx:1.5.1 เผยแพร่แล้ว เวอร์ชัน 1.5.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ActivityResultRegistry จะไม่แสดงผลลัพธ์ให้กับ ActivityResultCallback อีกต่อไปเมื่อการเรียก launch() แสดง Exception และมีการลงทะเบียนการเรียกกลับโดยไม่มี LifecycleOwner (Ia7ff7, b/238350794)

  • ตอนนี้ ComponentActivity จะส่งการเรียกเมนูไปยังการลบล้าง onPrepareOptionMenu(), onCreateOptionsMenu() และ onOptionsItemSelected() อย่างถูกต้องโดยไม่ต้องเรียกฟังก์ชัน Super (Ie33c5, b/238057118)

การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.5.0

เวอร์ชัน 1.5.0

29 มิถุนายน 2022

androidx.activity:activity:1.5.0, androidx.activity:activity-compose:1.5.0 และ androidx.activity:activity-ktx:1.5.0 เผยแพร่แล้ว เวอร์ชัน 1.5.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.4.0

  • ComponentDialog - ComponentDialog เป็นคลาสย่อยของ Dialog ที่มี OnBackPressedDispatcher ซึ่งจะเรียกใช้เมื่อมีการกดปุ่มย้อนกลับของระบบและกล่องโต้ตอบปรากฏขึ้น ที่สำคัญคือ คลาสย่อยนี้ยังตั้งค่า ViewTreeOnBackPressedDispatcherOwner ด้วย ซึ่งช่วยให้มุมมองมีวิธีทั่วไปในการดึงข้อมูลตัวจัดเตรียมที่ถูกต้อง ไม่ว่าจะอยู่ใน ComponentActivity หรือ ComponentDialog
  • อินเทอร์เฟซ Callback - ตอนนี้ ComponentActivity ใช้ชุดอินเทอร์เฟซ Callback แบบโมดูลที่สามารถใช้แทน Callback ของ Activity อินเทอร์เฟซเหล่านี้ ได้แก่ OnNewIntentProvider, OnConfigurationChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider, OnMultiWindowModeChangedProvider
  • การผสานรวม CreationExtras - ตอนนี้ ComponentActivity สามารถให้บริการ ViewModelProvider.Factory แบบไม่มีสถานะผ่าน CreationExtras ของ Lifecycle 2.5.0 แล้ว

การเปลี่ยนแปลงอื่นๆ

  • เราได้เลิกใช้งานเครื่องมือสร้างที่ไม่มีพารามิเตอร์สําหรับ ActivityResultContracts.CreateDocument แล้วและแทนที่ด้วยเครื่องมือสร้างใหม่ที่รับประเภท MIME ที่เฉพาะเจาะจง (เช่น "image/png") ตามที่กำหนดโดย Intent.ACTION_CREATE_DOCUMENT

เวอร์ชัน 1.5.0-rc01

11 พฤษภาคม 2022

androidx.activity:activity:1.5.0-rc01, androidx.activity:activity-compose:1.5.0-rc01 และ androidx.activity:activity-ktx:1.5.0-rc01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงจาก 1.5.0-beta01 เวอร์ชัน 1.5.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.5.0-beta01

20 เมษายน 2022

androidx.activity:activity:1.5.0-beta01, androidx.activity:activity-compose:1.5.0-beta01 และ androidx.activity:activity-ktx:1.5.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.5.0-beta01 มีการคอมมิตเหล่านี้

การอัปเดตทรัพยากรที่เกี่ยวข้อง

เวอร์ชัน 1.5.0-alpha05

6 เมษายน 2022

androidx.activity:activity:1.5.0-alpha05, androidx.activity:activity-compose:1.5.0-alpha05 และ androidx.activity:activity-ktx:1.5.0-alpha05 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha05 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ onPanelClosed() ของ ComponentActivity จะเรียก onPanelClosed() ของ super ด้วย ซึ่งจะแก้ไขปัญหาที่ระบบไม่เรียกใช้เมธอด onContextMenuClosed (Ib6f77)

เวอร์ชัน 1.5.0-alpha04

23 มีนาคม 2022

androidx.activity:activity:1.5.0-alpha04, androidx.activity:activity-compose:1.5.0-alpha04 และ androidx.activity:activity-ktx:1.5.0-alpha04 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha04 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ SavedStateViewFactory รองรับการใช้ CreationExtras แม้ว่าจะเริ่มต้นด้วย SavedStateRegistryOwner ก็ตาม หากระบุข้อมูลเพิ่มเติม ระบบจะไม่สนใจอาร์กิวเมนต์ที่เริ่มต้น (I6c43b, b/224844583)

เวอร์ชัน 1.5.0-alpha03

23 กุมภาพันธ์ 2022

androidx.activity:activity:1.5.0-alpha03, androidx.activity:activity-compose:1.5.0-alpha03 และ androidx.activity:activity-ktx:1.5.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha03 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้คุณสามารถส่ง CreationExtras ไปยังฟังก์ชันกิจกรรม by viewModels() ได้แล้ว (I6a3e6, b/217600303)

เวอร์ชัน 1.5.0-alpha02

9 กุมภาพันธ์ 2022

androidx.activity:activity:1.5.0-alpha02, androidx.activity:activity-compose:1.5.0-alpha02 และ androidx.activity:activity-ktx:1.5.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha02 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentActivity ใช้อินเทอร์เฟซ OnPictureInPictureModeChangedProvider เพื่อให้คอมโพเนนต์ใดก็ได้รับเหตุการณ์การเปลี่ยนแปลงโหมดภาพซ้อนภาพ (I9f567)
  • ตอนนี้ ComponentActivity ใช้อินเทอร์เฟซ OnMultiWindowModeChangedProvider เพื่อให้คอมโพเนนต์ใดก็ได้รับเหตุการณ์การเปลี่ยนแปลงโหมดหลายหน้าต่าง (I62d91)

เวอร์ชัน 1.5.0-alpha01

26 มกราคม 2022

androidx.activity:activity:1.5.0-alpha01, androidx.activity:activity-compose:1.5.0-alpha01 และ androidx.activity:activity-ktx:1.5.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentActivity ผสานรวมกับ ViewModel CreationExtras ซึ่งเปิดตัวเป็นส่วนหนึ่งของ Lifecycle 2.5.0-alpha01 แล้ว (Ie7e00, b/207012584)
  • เพิ่ม ComponentDialog ซึ่งเป็นคลาสย่อยของ Dialog ที่มี OnBackPressedDispatcher ซึ่งจะเรียกใช้เมื่อมีการกดปุ่มย้อนกลับของระบบขณะที่กล่องโต้ตอบแสดงอยู่ ที่สำคัญคือ คลาสย่อยนี้ยังตั้งค่า ViewTreeOnBackPressedDispatcherOwner ด้วย ซึ่งช่วยให้มุมมองมีวิธีทั่วไปในการเรียกข้อมูลตัวจัดเตรียมที่ถูกต้อง ไม่ว่าจะอยู่ใน ComponentActivity หรือ ComponentDialog (I8a1bc)
  • ตอนนี้ ComponentActivity ใช้อินเทอร์เฟซ OnNewIntentProvider ใหม่เพื่อให้คอมโพเนนต์ใดก็ตามรับเหตุการณ์เหล่านี้ได้ (If1f8b)
  • ตอนนี้ ComponentActivity ใช้อินเทอร์เฟซ OnConfigurationChangedProvider ใหม่เพื่อให้คอมโพเนนต์ใดก็ตามรับเหตุการณ์เหล่านี้ได้ (If623b)
  • ตอนนี้ ComponentActivity ใช้อินเทอร์เฟซ OnTrimMemoryProvider ใหม่เพื่อให้คอมโพเนนต์ใดก็ได้รับเหตุการณ์เหล่านี้ (Ia9295)

การเปลี่ยนแปลง API

  • เราได้เลิกใช้งานเครื่องมือสร้างแบบไม่มีพารามิเตอร์สําหรับ ActivityResultContracts.CreateDocument แล้วและแทนที่ด้วยเครื่องมือสร้างแบบใหม่ที่รับประเภท MIME ที่เฉพาะเจาะจง (เช่น "image/png") ตามที่กำหนดโดย Intent.ACTION_CREATE_DOCUMENT (I2bec6)
  • ตอนนี้คุณเรียกข้อมูล OnBackPressedDispatcherOwner ที่เชื่อมโยงกับมุมมองผ่าน ViewTreeOnBackPressedDispatcherOwner ได้แล้ว แทนที่จะแคสต์ Context (I74685)

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องเมื่อเข้าถึง ViewModelเป็นครั้งแรกจาก registerForActivityResult() callback หรือ callback ไปยัง LifecycleObserver ที่เพิ่มเป็นส่วนหนึ่งของ init ของ ComponentActivity (Ife83f)

เวอร์ชัน 1.4.0

เวอร์ชัน 1.4.0

27 ตุลาคม 2021

androidx.activity:activity:1.4.0, androidx.activity:activity-compose:1.4.0 และ androidx.activity:activity-ktx:1.4.0 เผยแพร่แล้ว เวอร์ชัน 1.4.0 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.3.0

  • ตอนนี้ AndroidX ComponentActivity ใช้อินเทอร์เฟซ MenuHost แล้ว ซึ่งจะช่วยให้คอมโพเนนต์ใดก็ตามเพิ่มรายการเมนูลงใน ActionBar ได้โดยการเพิ่มอินสแตนซ์ MenuProvider ลงในกิจกรรม คุณเลือกที่จะเพิ่ม MenuProvider แต่ละรายการด้วย Lifecycle ได้ ซึ่งจะควบคุมการแสดงผลของรายการเมนูเหล่านั้นโดยอัตโนมัติตามสถานะ Lifecycle และจัดการการนำ MenuProvider ออกเมื่อมีการทำลาย Lifecycle
  • เราได้เขียนคลาส ActivityResultContract ใหม่ใน Kotlin เพื่อให้นักพัฒนาซอฟต์แวร์ที่เขียนสัญญาที่กําหนดเองใน Kotlin กําหนดค่า Nullability ที่ถูกต้องสําหรับคลาสอินพุตและเอาต์พุตได้
  • คลาส ActivityResultContracts และสัญญาของคลาสได้รับการเขียนใหม่ใน Kotlin เพื่อให้แน่ใจว่ามี Nullability ที่เหมาะสม

เวอร์ชัน 1.4.0-rc01

13 ตุลาคม 2021

androidx.activity:activity:1.4.0-rc01, androidx.activity:activity-compose:1.4.0-rc01 และ androidx.activity:activity-ktx:1.4.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.4.0-rc01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ActivityResultRegistry จะไม่แสดงผลลัพธ์ให้กับ ActivityResultCallback อีกต่อไปเมื่อการเรียก launch แสดง Exception (If4f91, b/200845664)

เวอร์ชัน 1.4.0-beta01

29 กันยายน 2021

androidx.activity:activity:1.4.0-beta01, androidx.activity:activity-compose:1.4.0-beta01 และ androidx.activity:activity-ktx:1.4.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.4.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • แก้ไขประเภทของ ActivityResultContracts.OpenMultipleDocuments และ ActivityResultContracts.GetMultipleContents ซึ่งทําให้ระบบใช้ประเภทเอาต์พุตเป็น List<? extends Uri> เมื่อใช้โค้ดจากภาษาโปรแกรม Java (If71de)
  • ตอนนี้คุณเข้าถึงค่าคงที่แบบสาธารณะภายในคลาส ActivityResultContracts.StartActivityForResult, ActivityResultContracts.StartIntentSenderForResult และ ActivityResultContracts.RequestMultiplePermissions ได้เมื่อใช้ Kotlin ผ่านออบเจ็กต์ Companion แบบสาธารณะ (aosp/1832555)

การอัปเดตเอกสารประกอบ

  • ข้อความการเลิกใช้งานสำหรับ API ที่ตอนนี้จัดการโดย Activity Result API ซึ่งได้แก่ startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions และ onRequestPermissionsResult ทั้งหมดได้รับการขยายรายละเอียดเพิ่มเติมแล้ว (cce80f)

เวอร์ชัน 1.4.0-alpha02

15 กันยายน 2021

androidx.activity:activity:1.4.0-alpha02, androidx.activity:activity-compose:1.4.0-alpha02 และ androidx.activity:activity-ktx:1.4.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha02 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้อาร์ติแฟกต์ activity-compose มีข้อผิดพลาด LaunchDuringComposition lint ที่ทำให้คุณเรียกใช้เมธอด launch ของ ActivityResultLauncher ไม่ได้เนื่องจากเป็นส่วนหนึ่งของการคอมโพสิชัน เนื่องจากคอมโพสิชันไม่ควรมีผลข้างเคียง ใช้ API สำหรับจัดการผลข้างเคียง (7c2bbe, b/191347220)

การเปลี่ยนแปลง API

  • เราได้เขียนคลาส ActivityResultContract ใหม่ใน Kotlin เพื่อให้นักพัฒนาแอปที่เขียนสัญญาที่กําหนดเองใน Kotlin กําหนดค่า Nullability ที่ถูกต้องสําหรับคลาสอินพุตและเอาต์พุตได้ (I8a8f5)
  • คลาส ActivityResultContracts และสัญญาของคลาสได้รับการเขียนใหม่เป็น Kotlin เพื่อให้แน่ใจว่ามี Nullability ที่เหมาะสม (I69802)

เวอร์ชัน 1.4.0-alpha01

1 กันยายน 2021

androidx.activity:activity:1.4.0-alpha01, androidx.activity:activity-compose:1.4.0-alpha01 และ androidx.activity:activity-ktx:1.4.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ AndroidX ComponentActivity ใช้อินเทอร์เฟซ MenuHost แล้ว ซึ่งจะช่วยให้คอมโพเนนต์ใดก็ตามเพิ่มรายการเมนูลงใน ActionBar ได้โดยการเพิ่มอินสแตนซ์ MenuProvider ลงในกิจกรรม คุณเลือกที่จะเพิ่ม MenuProvider แต่ละรายการด้วย Lifecycle ได้ ซึ่งจะควบคุมการแสดงผลของรายการเมนูเหล่านั้นโดยอัตโนมัติตามสถานะ Lifecycle และจัดการการนำ MenuProvider ออกเมื่อมีการทำลาย Lifecycle (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)
  }

การเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้ ActivityResultRegistry จะแสดงข้อผิดพลาด IllegalStateException เมื่อพยายามเรียก launch() ใน ActivityResultLauncher ที่ไม่ได้ลงทะเบียนหรือยกเลิกการลงทะเบียนแล้ว (Ida75d, b/192567522)

การมีส่วนร่วมจากภายนอก

  • ขอขอบคุณ dmitrilc ที่แก้ไขคำที่พิมพ์ผิดในเอกสารประกอบของ ActivityResult (#221)

เวอร์ชัน 1.3.1

เวอร์ชัน 1.3.1

4 สิงหาคม 2021

androidx.activity:activity:1.3.1, androidx.activity:activity-compose:1.3.1 และ androidx.activity:activity-ktx:1.3.1 เผยแพร่แล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้

การอัปเดตทรัพยากรที่เกี่ยวข้อง

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับ Kotlin 1.5.21
  • ตอนนี้การเขียนกิจกรรมจะขึ้นอยู่กับการเขียน 1.0.1

เวอร์ชัน 1.3.0

เวอร์ชัน 1.3.0

28 กรกฎาคม 2021

androidx.activity:activity:1.3.0, androidx.activity:activity-compose:1.3.0 และ androidx.activity:activity-ktx:1.3.0 เผยแพร่แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0

  • อาร์ติแฟกต์ Compose ของกิจกรรม - อาร์ติแฟกต์ activity-compose มีเมธอดส่วนขยาย setContent สำหรับโฮสต์ UI ของ Jetpack Compose ในกิจกรรม และ Wrapper สำหรับ Compose โดยเฉพาะสำหรับการโต้ตอบกับ ComponentActivity API เพื่อจัดการปุ่มย้อนกลับของระบบและ Activity Result API ดูรายละเอียดเพิ่มเติมในเอกสารประกอบ
  • สัญญา CaptureVideo - CaptureVideo ActivityResultContract จะใช้แทนสัญญา TakeVideo ที่ถูกเลิกใช้งานแล้วในปัจจุบัน และแสดงผลบูลีนเพื่อบ่งบอกถึงความสำเร็จที่ใช้งานได้กับแอปกล้องหลายแอป
  • การติดตามมุมมองคำแนะนำของการแสดงภาพซ้อนภาพ - ตอนนี้ผู้ใช้ activity-ktx สามารถใช้วิธีการขยาย trackPipAnimationHintView ใน Activity เพื่อสร้าง PictureInPictureParams ใหม่โดยอัตโนมัติด้วยตําแหน่งใหม่ของมุมมองเมื่อเปลี่ยนตําแหน่งตามหน้าต่าง

เวอร์ชัน 1.3.0-rc02

14 กรกฎาคม 2021

androidx.activity:activity:1.3.0-rc02, androidx.activity:activity-compose:1.3.0-rc02 และ androidx.activity:activity-ktx:1.3.0-rc02 เผยแพร่แล้ว เวอร์ชัน 1.3.0-rc02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ระบบจะบันทึกและกู้คืน ActivityResultRegistry callbacks อย่างถูกต้องแล้ว เพื่อไม่ให้มี ActivityResultRegistry callbacks ซ้ำกันใน savedState (I97816, b/191893160)

เวอร์ชัน 1.3.0-rc01

1 กรกฎาคม 2021

androidx.activity:activity:1.3.0-rc01, androidx.activity:activity-compose:1.3.0-rc01 และ androidx.activity:activity-ktx:1.3.0-rc01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงจาก 1.3.0-beta02 เวอร์ชัน 1.3.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.3.0-beta02

16 มิถุนายน 2021

androidx.activity:activity:1.3.0-beta02, androidx.activity:activity-compose:1.3.0-beta02 และ androidx.activity:activity-ktx:1.3.0-beta02 เผยแพร่แล้ว เวอร์ชัน 1.3.0-beta02 มีการคอมมิตเหล่านี้

อัปเดต activity-compose ให้ใช้ Compose 1.0.0-beta09 ตอนนี้ androidx.compose.ui:ui-test-junit4 ขึ้นต่อกันกับ activity-compose ในเวลาคอมไพล์

เวอร์ชัน 1.3.0-beta01

2 มิถุนายน 2021

androidx.activity:activity:1.3.0-beta01, androidx.activity:activity-compose:1.3.0-beta01 และ androidx.activity:activity-ktx:1.3.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.3.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ระบบได้นำเมธอด @Composable registerForActivityResult() ที่ใช้ไม่ได้แล้วก่อนหน้านี้ออกแล้ว โปรดใช้ rememberLauncherForActivityResult() (Ic39d3)

เวอร์ชัน 1.3.0-alpha08

18 พฤษภาคม 2021

androidx.activity:activity:1.3.0-alpha08, androidx.activity:activity-compose:1.3.0-alpha08 และ androidx.activity:activity-ktx:1.3.0-alpha08 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha08 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • CaptureVideo ActivityResultContract ใหม่จะแสดงผลเป็นบูลีนไปยัง ActivityResultCallback ซึ่งระบุว่าระบบบันทึกวิดีโอไปยัง URI ที่ระบุเรียบร้อยแล้วหรือไม่ ซึ่งจะใช้แทนสัญญา TakeVideo ที่เราเลิกใช้งานแล้ว เนื่องจากแอปกล้องรองรับการแสดงผลภาพขนาดย่อเป็นบิตแมปน้อยมาก ทำให้ผลลัพธ์ที่ได้ไม่มีประโยชน์ (Ie21f2, b/185938070)
  • เพิ่ม API ใหม่ Activity#setPipAnimationHintView เพื่ออัปเดตคำแนะนำสี่เหลี่ยมผืนผ้าแหล่งที่มาของ PipParams ทุกครั้งที่มุมมองเคลื่อนไหว (I9063d)

การเปลี่ยนแปลง API

  • ตอนนี้ฟังก์ชัน rememberLauncherForActivityResult จะแสดงผลลัพธ์เป็นโปรแกรมเปิดใช้งานที่เลิกใช้งานฟังก์ชัน unregister() โดย rememberLauncherForActivityResult จะจัดการการลงทะเบียนและการยกเลิกการลงทะเบียนโปรแกรมเปิดใช้งานโดยอัตโนมัติ (I2443e)

ความเข้ากันได้ของ Compose

  • androidx.activity:activity-compose:1.3.0-alpha08 ใช้ได้กับ Compose เวอร์ชัน 1.0.0-beta07 ขึ้นไปเท่านั้น

เวอร์ชัน 1.3.0-alpha07

21 เมษายน 2021

androidx.activity:activity:1.3.0-alpha07, androidx.activity:activity-compose:1.3.0-alpha07 และ androidx.activity:activity-ktx:1.3.0-alpha07 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha07 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ rememberLauncherForActivityResult จะแสดงข้อมูลอ้างอิงที่เสถียรซึ่งชี้ไปยังActivityResultLauncherอินสแตนซ์เดียวกัน แม้ว่าสัญญาจะเปลี่ยนแปลงเนื่องจากการเปลี่ยนรูปแบบ (Id2d6d)
  • การใช้ Fragments เวอร์ชันที่ไม่เสถียรที่สูงกว่า 1.3.0 จะไม่แสดงข้อผิดพลาดเกี่ยวกับ Lint ผลบวกลวงอีกต่อไปซึ่งบอกให้คุณใช้ 1.3.0 (aosp/1670206, b/184847092)

เวอร์ชัน 1.3.0-alpha06

7 เมษายน 2021

androidx.activity:activity:1.3.0-alpha06, androidx.activity:activity-compose:1.3.0-alpha06 และ androidx.activity:activity-ktx:1.3.0-alpha06 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha06 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เราได้เปลี่ยนชื่อ registerForActivityResult() API เป็น rememberLauncherForActivityResult() เพื่อบ่งชี้ให้ชัดเจนยิ่งขึ้นว่า ActivityResultLauncher ที่แสดงผลเป็นออบเจ็กต์ที่มีการจัดการซึ่งระบบจะจดจำในนามของคุณ การพยายามเรียก unregister ActivityResultLauncher ที่แสดงผลจะแสดงข้อผิดพลาด (I2bb6d)
  • ตอนนี้ LocalOnBackPressedDispatcherOwner.current และ LocalActivityResultRegistryOwner.current จะแสดงผลค่าที่นํามาใช้ได้เพื่อพิจารณาว่าค่านั้นพร้อมใช้งานในองค์ประกอบปัจจุบันหรือไม่ ตอนนี้ API ที่ต้องอาศัย API เหล่านั้น เช่น BackHandler และ rememberLauncherForActivityResult() ตามลำดับจะแสดงข้อผิดพลาดที่อธิบายรายละเอียดมากขึ้นหากไม่พบเจ้าของที่แท้จริง NavHost ใช้งานได้แล้วแม้ว่าจะไม่พบ OnBackPressedDispatcherOwner ก็ตาม ซึ่งกรณีนี้เกิดขึ้นเมื่อแสดงตัวอย่าง NavHost (I7d8b4)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ BackHandler จะขัดจังหวะการกดกลับอย่างถูกต้องในกรณีที่กิจกรรมคือ STOPPED จากนั้นเป็น STARTED อีกครั้ง และมีการเพิ่มการเรียกกลับอื่นๆ ด้วย LifecycleOwner (I71de6, b/182284739)
  • การใช้ส่วนขยายเมธอด launch() กับ ActivityResultContract ที่กําหนดเองซึ่งมีอินพุต Unit จะไม่ทําให้มีข้อผิดพลาด NullPointerException อีกต่อไป (I76282, b/183837954)

เวอร์ชัน 1.3.0-alpha05

24 มีนาคม 2021

androidx.activity:activity:1.3.0-alpha05, androidx.activity:activity-compose:1.3.0-alpha05 และ androidx.activity:activity-ktx:1.3.0-alpha05 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha05 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • จาก กิจกรรม 1.2.2: แก้ไขปัญหาในการตรวจสอบ InvalidFragmentVersionForActivityResult lint ที่ทําให้ตรวจพบรายการที่ไม่ถูกต้องเมื่อใช้ Flank 1.3.1 ขึ้นไป (I54da1, b/182388985)
  • จาก Activity 1.2.2: ตอนนี้ ComponentActivity จะหลีกเลี่ยง ClassNotFoundException เมื่อเปิด Intent จาก ActivityResultContract ที่เคยเก็บไว้เป็นข้อมูลเพิ่มเติมใน Intent อื่น (Ieff05, b/182906230)

การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.3.0-alpha04

10 มีนาคม 2021

androidx.activity:activity:1.3.0-alpha04, androidx.activity:activity-compose:1.3.0-alpha04 และ androidx.activity:activity-ktx:1.3.0-alpha04 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha04 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.2.1: ตอนนี้ RequestMultiplePermissions จะแสดงผลลัพธ์สำหรับสิทธิ์ทั้งหมดที่ขอเสมอแทนที่จะแสดงเฉพาะสิทธิ์ที่ยังไม่ได้ให้ก่อนหน้านี้ (I50bc3, b/180884668)
  • จากกิจกรรม 1.2.1: ตอนนี้ ActivityResultRegistry ช่วยให้มั่นใจได้ว่าคําขอ launch() ที่อยู่ระหว่างดำเนินการจะแสดงผลลัพธ์แม้ว่าคุณจะ unregister() แล้ว register() อีกครั้งด้วยคีย์เดียวกัน (I9ef34, b/181267562)
  • Activity Compose จะไม่เพิ่มข้อกําหนดของทดสอบลงใน classpath รันไทม์อีกต่อไป (Ifd8b3)
  • แก้ไขปัญหาเกี่ยวกับ BackHandler ที่ยังคงใช้ Lambda onBack ที่ตั้งไว้ก่อนหน้านี้หลังจากการจัดองค์ประกอบใหม่ (8eb5eb)

เวอร์ชัน 1.3.0-alpha03

24 กุมภาพันธ์ 2021

androidx.activity:activity:1.3.0-alpha03, androidx.activity:activity-compose:1.3.0-alpha03 และ androidx.activity:activity-ktx:1.3.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha03 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้มีฟังก์ชัน registerForActivityResult ที่คอมโพสิเบิลสำหรับรับผลลัพธ์จากกิจกรรมภายในคอมโพสิเบิล (Ia7851, b/172690553)

การเปลี่ยนแปลง API

  • ตอนนี้ LocalOnBackPressedDispatcherOwner มีฟังก์ชัน provides ที่ใช้กับ CompositionLocalProvider ได้ ซึ่งมาแทนที่ asProvidableCompositionLocal() API (I45d24)

เวอร์ชัน 1.3.0-alpha02

10 กุมภาพันธ์ 2021

androidx.activity:activity:1.3.0-alpha02, androidx.activity:activity-compose:1.3.0-alpha02 และ androidx.activity:activity-ktx:1.3.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาใน Activity Compose 1.3.0-alpha01 ที่ทำให้เกิดข้อยกเว้น NoSuchMethodError: No static method setContent เมื่อใช้ Compose 1.0.0-alpha12 ผู้ใช้ Compose ทุกคนควรใช้ 1.3.0-alpha02 ขึ้นไป (b/179911234)

การเปลี่ยนแปลง API

  • คุณสามารถใช้ BackHandler API เพื่ออนุญาตให้ Composable ขัดจังหวะปุ่มย้อนกลับของระบบได้ (I58ed5, b/172154006)

เวอร์ชัน 1.3.0-alpha01

10 กุมภาพันธ์ 2021

androidx.activity:activity:1.3.0-alpha01, androidx.activity:activity-compose:1.3.0-alpha01 และ androidx.activity:activity-ktx:1.3.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • อาร์ติแฟกต์ activity-compose ใหม่จะมีตัวช่วยเฉพาะของ Jetpack Compose สำหรับ API ของ androidx.activity โดยเฉพาะ
    • ย้าย ComponentActivity.setContent จาก androidx.compose.ui.platform.setContent ไปที่ androidx.activity.compose.setContent แล้ว (Icf416)

ปัญหาที่ทราบ

  • การใช้ Activity Compose 1.3.0-alpha01 และไลบรารีที่ขึ้นอยู่กับ 1.3.0-alpha01 เช่น androidx.compose.ui:ui-test-junit4:1.0.0-alpha12 จะทำให้เกิดข้อยกเว้น NoSuchMethodError: No static method setContent (b/179911234)

เวอร์ชัน 1.2.4

เวอร์ชัน 1.2.4

21 กรกฎาคม 2021

androidx.activity:activity:1.2.4 และ androidx.activity:activity-ktx:1.2.4 เผยแพร่แล้ว เวอร์ชัน 1.2.4 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • จากกิจกรรม 1.3.0-rc02: ตอนนี้ระบบบันทึกและกู้คืน Callback ของ ActivityResultRegistry อย่างถูกต้องแล้ว เพื่อไม่ให้มี Callback ซ้ำกันใน savedState (I97816, b/191893160)

เวอร์ชัน 1.2.3

เวอร์ชัน 1.2.3

5 พฤษภาคม 2021

androidx.activity:activity:1.2.3 และ androidx.activity:activity-ktx:1.2.3 เผยแพร่แล้ว เวอร์ชัน 1.2.3 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • การใช้ส่วนขยายเมธอด launch() กับ ActivityResultContract ที่กําหนดเองซึ่งมีอินพุต Unit จะไม่ทําให้มีข้อผิดพลาด NullPointerException อีกต่อไป (I76282, b/183837954)
  • แก้ไขข้อผิดพลาดเกี่ยวกับ Lint ที่ตรวจพบรายการที่ไม่ถูกต้องซึ่งแจ้งให้คุณใช้ Fragment 1.3.0 เมื่อใช้บิลด์สแนปชอต อัลฟ่า เบต้า หรือ RC ของ Fragments เวอร์ชันใหม่ (f4a57e, b/184847092)

เวอร์ชัน 1.2.2

เวอร์ชัน 1.2.2

24 มีนาคม 2021

androidx.activity:activity:1.2.2 และ androidx.activity:activity-ktx:1.2.2 เผยแพร่แล้ว เวอร์ชัน 1.2.2 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาในInvalidFragmentVersionForActivityResultการตรวจสอบ Lint ที่ทําให้ได้ผลบวกลวงเมื่อใช้ Flank 1.3.1 ขึ้นไป (I54da1, b/182388985)
  • ตอนนี้ ComponentActivity จะหลีกเลี่ยง ClassNotFoundException เมื่อเปิด Intent จาก ActivityResultContract ที่เคยเก็บไว้เป็นข้อมูลเพิ่มเติมใน Intent อื่น (Ieff05, b/182906230)

การอัปเดตทรัพยากร Dependency

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร 2.3.1

เวอร์ชัน 1.2.1

เวอร์ชัน 1.2.1

10 มีนาคม 2021

androidx.activity:activity:1.2.1 และ androidx.activity:activity-ktx:1.2.1 เผยแพร่แล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ RequestMultiplePermissions จะแสดงผลลัพธ์สำหรับสิทธิ์ทั้งหมดที่ขอเสมอ แทนที่จะแสดงเฉพาะสิทธิ์ที่ยังไม่ได้ให้ก่อนหน้านี้ (I50bc3, b/180884668)
  • ตอนนี้ ActivityResultRegistry ช่วยให้มั่นใจได้ว่าคำขอ launch() ที่อยู่ระหว่างดำเนินการจะแสดงผลลัพธ์แม้ว่าคุณจะ unregister() แล้ว register() อีกครั้งด้วยคีย์เดียวกันก็ตาม (I9ef34, b/181267562)

เวอร์ชัน 1.2.0

เวอร์ชัน 1.2.0

10 กุมภาพันธ์ 2021

androidx.activity:activity:1.2.0 และ androidx.activity:activity-ktx:1.2.0 เผยแพร่แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0

  • Activity Result API: ตอนนี้ ComponentActivity มี ActivityResultRegistry ที่ช่วยให้คุณจัดการโฟลว์ startActivityForResult()+onActivityResult() และ requestPermissions()+onRequestPermissionsResult() ได้โดยไม่ต้องลบล้างเมธอดใน Activity หรือ Fragment เพิ่มความปลอดภัยของประเภทผ่าน ActivityResultContract และมีฮุกสําหรับการทดสอบโฟลว์เหล่านี้ ดูการรับผลลัพธ์จากกิจกรรมที่อัปเดตแล้ว
  • ContextAware: ตอนนี้ ComponentActivity ใช้ ContextAware แล้ว ซึ่งจะช่วยให้คุณเพิ่มอินสแตนซ์ OnContextAvailableListener อย่างน้อย 1 รายการที่จะได้รับการเรียกกลับก่อน Activity.onCreate() หลัก

    • ส่วนขยาย Kotlin ที่ระงับ withContextAvailable() ช่วยให้คุณเรียกใช้บล็อกที่ไม่ระงับได้เมื่อบริบทพร้อมใช้งานและแสดงผลลัพธ์
    • FragmentActivity ใช้ API นี้ใน Fragment 1.3.0 เพื่อกู้คืนสถานะของ FragmentManager โปรแกรมฟังที่เพิ่มลงในคลาสย่อยของ FragmentActivity จะทำงานหลังจากโปรแกรมฟังนั้น
    • AppCompatActivity ใช้ API นี้ใน AppCompat 1.3.0-alpha02 ขึ้นไป โปรแกรมฟังที่เพิ่มลงในคลาสย่อยของ AppCompatActivity จะทำงานหลังจากโปรแกรมฟังนั้น
  • ViewTree การรองรับ: ตอนนี้ ComponentActivity รองรับ ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) และ ViewTreeSavedStateRegistryOwner API ที่เพิ่มใน Lifecycle 2.3.0 และ SavedState 1.1.0 เพื่อให้แสดงผลกิจกรรมเป็น LifecycleOwner, ViewModelStoreOwner และ SavedStateRegistryOwner สำหรับมุมมองที่เพิ่มลงใน ComponentActivity โดยตรง

  • การพอร์ตเมธอด reportFullyDrawn() กลับไปใช้เวอร์ชันเก่า - เราได้พอร์ตเมธอด Activity ของ reportFullyDrawn() กลับไปใช้เวอร์ชันเก่าใน ComponentActivity เพื่อให้ใช้งานได้กับ API ทุกระดับ แก้ไขปัญหาข้อขัดข้องใน API ระดับ 19 และเพิ่มการติดตามสำหรับเมธอดนี้ใน API ทุกระดับ

เวอร์ชัน 1.2.0-rc01

16 ธันวาคม 2020

androidx.activity:activity:1.2.0-rc01 และ androidx.activity:activity-ktx:1.2.0-rc01 เผยแพร่แล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ ActivityResultRegistry จะกู้คืนสถานะที่บันทึกไว้อย่างถูกต้องเสมอ (Idd56b)
  • เพิ่มการติดตามไปยัง ComponentActivity.reportFullyDrawn (Ic7632)

การมีส่วนร่วมจากภายนอก

  • ตอนนี้ ComponentActivity จะลบล้าง reportFullyDrawn() ซึ่งทำให้เรียกเมธอดนี้ได้ในทุกระดับ API และแก้ไขข้อขัดข้องเมื่อเรียกใช้เมธอดนี้โดยไม่มีสิทธิ์ของระบบที่เหมาะสมในอุปกรณ์ API 19 ขอขอบคุณ Simon Schiller (b/163239764, #103)

เวอร์ชัน 1.2.0-beta02

2 ธันวาคม 2020

androidx.activity:activity:1.2.0-beta02 และ androidx.activity:activity-ktx:1.2.0-beta02 เผยแพร่แล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ Activity Result API ไม่รอให้วงจรเป็น STARTED ก่อนแสดงผลลัพธ์เมื่อลงทะเบียนด้วย Lifecycle (I109ea)

การมีส่วนร่วมจากภายนอก

  • อัปเดตเอกสารประกอบของ launch() เพื่อระบุอย่างชัดเจนว่าอาจทำให้เกิด ActivityNotFoundException ขอขอบคุณ Michał Zieliński (aosp/1493580)

เวอร์ชัน 1.2.0-beta01

1 ตุลาคม 2020

androidx.activity:activity:1.2.0-beta01 และ androidx.activity:activity-ktx:1.2.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ ActivityResultRegistry จะสร้างจำนวนเต็มแบบสุ่มจนกว่าจะพบจำนวนเต็มที่ไม่ได้จัดสรรเพื่อใช้เป็นรหัสคำขอ register() ซึ่งจะช่วยป้องกันจำนวนเต็มที่อาจล้นเนื่องจากรหัสคำขอที่เพิ่มขึ้น (b/168779518)

  • ระบบจะนำLifecycle observers ออกอย่างถูกต้องเมื่อเรียกใช้ unregister() ใน ActivityResultLauncher (b/165608393)

การเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้ ActivityResultRegistry จะแสดง IllegalStateException เมื่อพยายามเรียก register() ด้วย LifecycleOwner ที่มี Lifecycle ถึง STARTED แล้ว (b/165435866)

อัปเดตเอกสารประกอบ

  • เอกสารประกอบของ ContextAware ลิงก์ไปยัง LifecycleOwner เพื่อไฮไลต์การเรียกกลับ Lifecycle ว่าเป็นตําแหน่งที่เหมาะสมสําหรับเหตุการณ์การสร้างและการทำลาย (aosp/1414152)

เวอร์ชัน 1.2.0-alpha08

19 สิงหาคม 2020

androidx.activity:activity:1.2.0-alpha08 และ androidx.activity:activity-ktx:1.2.0-alpha08 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha08 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentActivity ใช้ ContextAware แล้ว ซึ่งช่วยให้คุณเพิ่มอินสแตนซ์ OnContextAvailableListener อย่างน้อย 1 รายการที่จะได้รับการเรียกกลับก่อน Activity.onCreate() หลัก (b/161390636)
    • ส่วนขยาย Kotlin ที่ระงับ withContextAvailable() ช่วยให้คุณเรียกใช้บล็อกที่ไม่ระงับได้เมื่อบริบทพร้อมใช้งานและแสดงผลลัพธ์ (I8290c)
    • FragmentActivity ใช้ API นี้ใน Fragment 1.3.0-alpha08 เพื่อกู้คืนสถานะของ FragmentManager โปรแกรมฟังที่เพิ่มลงในคลาสย่อยของ FragmentActivity จะทำงานหลังจากโปรแกรมฟังนั้น (I513da)
    • AppCompatActivity ใช้ API นี้ใน AppCompat 1.3.0-alpha02 โปรแกรมฟังที่เพิ่มลงในคลาสย่อยของ AppCompatActivity จะทำงานหลังจากโปรแกรมฟังนั้น (I513da)

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาเกี่ยวกับActivityResultFragmentVersionDetectorการตรวจสอบ Lint ที่ทำให้การตรวจสอบใช้งานไม่ได้เมื่อใช้ Lint 27.1.0 ขึ้นไป (b/162155191)

เวอร์ชัน 1.2.0-alpha07

22 กรกฎาคม 2020

androidx.activity:activity:1.2.0-alpha07 และ androidx.activity:activity-ktx:1.2.0-alpha07 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha07 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มInvalidFragmentVersionForActivityResultการตรวจสอบ Lint ใหม่ที่จะยืนยันว่าคุณใช้ Fragment 1.3.0-alpha07 เมื่อใช้ Activity Result API เพื่อหลีกเลี่ยงข้อขัดข้องที่เกิดขึ้นระหว่างรันไทม์เนื่องจากปัญหา "รหัสคำขอไม่ถูกต้อง" และคำขอสิทธิ์ที่ไม่ทำงานซึ่งเกิดจากการใช้ Fragment เวอร์ชันเก่า (b/152554847)

การมีส่วนร่วมจากภายนอก

  • แก้ไข ArrayIndexOutOfBoundsException เมื่อแยกวิเคราะห์ผลลัพธ์สำหรับสัญญาRequestPermission Activity Result (I8f9e3, b/161057605)

เวอร์ชัน 1.2.0-alpha06

10 มิถุนายน 2020

androidx.activity:activity:1.2.0-alpha06 และ androidx.activity:activity-ktx:1.2.0-alpha06 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้คุณแยกโครงสร้างคลาส ActivityResult ใน Kotlin เพื่อเข้าถึง requestCode และ intent ได้โดยตรงแล้ว (b/157212935)
  • ตอนนี้ ActivityResultLauncher ให้คุณรับ ActivityResultContract ที่ใช้ลงทะเบียนตัวเปิดใช้งานได้แล้ว (b/156875743)

การเปลี่ยนแปลง API

  • การเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้อง: เปลี่ยนชื่อเมธอด invoke() ใน ActivityResultRegistry เป็น onLaunch() (b/157496491)
  • ตอนนี้สัญญา OpenMultipleDocuments จะแสดงผลรายการว่างแทน null ไปยังการเรียกกลับที่ลงทะเบียนไว้หากไม่มีผลลัพธ์แสดง (b/157348014)

เวอร์ชัน 1.2.0-alpha05

20 พฤษภาคม 2020

androidx.activity:activity:1.2.0-alpha05 และ androidx.activity:activity-ktx:1.2.0-alpha05 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha05 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

การเปลี่ยนแปลง API

  • ตอนนี้สัญญา TakePicture จะแสดงผลเป็น boolean ซึ่งบ่งบอกถึงความสำเร็จแทนภาพขนาดย่อ Bitmap เนื่องจากแอปกล้องรองรับการดำเนินการนี้น้อยมากเมื่อเขียนรูปภาพไปยัง Uri ที่ระบุ (b/154302879)
  • เราได้นําส่วนขยาย invoke() ใน ActivityResultLauncher ออกแล้วเพื่อใช้ launch() อย่างชัดเจนเพื่อบ่งชี้ว่าการดำเนินการเหล่านี้เป็นแบบไม่พร้อมกัน เราได้เพิ่มส่วนขยาย Kotlin สําหรับ launch ลงในแพ็กเกจ androidx.activity.result สําหรับ ActivityResultLauncher<Void> และ ActivityResultLauncher<Unit> ซึ่งทำให้ไม่ต้องส่ง null หรือ Unit ตามลําดับ ซึ่งสอดคล้องกับลักษณะการทํางานจากส่วนขยาย invoke() ก่อนหน้านี้ (aosp/1304674, aosp/1304675)
  • เราได้รวมวิธีการ IntentSenderRequest.Builder สำหรับ setFlagsMask() และ setFlagsValues() เข้าเป็นวิธีการ setFlags() เดียว (aosp/1302111)

การแก้ไขข้อบกพร่อง

  • เมื่อลงทะเบียน ActivityResultCallback ด้วย LifecycleOwner แก้ปัญหาที่ระบบจะเรียกใช้การเรียกกลับก่อนที่สถานะจะถึง STARTED (aosp/1309744)

การเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้ ActivityResultRegistry จะสร้างรหัสคำขอที่เริ่มต้นที่ 0xFFFF แทนที่จะเป็น 0 ซึ่งจะช่วยป้องกันไม่ให้มีรหัสทับซ้อนกันเมื่อใช้ startActivityForResult() หรือ requestPermissions() ในกิจกรรม (aosp/1302324)

เวอร์ชัน 1.2.0-alpha04

29 เมษายน 2020

androidx.activity:activity:1.2.0-alpha04 และ androidx.activity:activity-ktx:1.2.0-alpha04 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha04 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มสัญญาที่เรียก startIntentSenderForResult ไปยัง ActivityResult API (b/153007517)

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อเมธอด prepareCall() เป็น registerForActivityResult() แล้ว ทั้งในส่วน ComponentActivity ที่นี่และในส่วนย่อย 1.3.0-alpha04 (aosp/1278717)
  • เราได้เปลี่ยนชื่อสัญญา GetContents, OpenDocuments และ RequestPermissions เป็น GetMultipleContents, OpenMultipleDocuments และ RequestMultiplePermissions ตามลำดับ (aosp/1280161)
  • ComponentActivity ใช้อินเทอร์เฟซ ActivityResultRegisteryOwner แล้ว (aosp/1290888)
  • - เลิกใช้งาน startActivityForResult()/onActivityResult() และ onRequestPermissionsResult() API ใน ComponentActivity แล้ว โปรดใช้ Activity Result API (b/154751887)

การแก้ไขข้อบกพร่อง

  • เมื่อใช้สัญญา GetMultipleContents และ OpenMultipleDocuments และเลือกรายการเดียว ระบบจะแสดงรายการดังกล่าวในการเรียกกลับอย่างถูกต้อง (b/152941153)

เวอร์ชัน 1.2.0-alpha03

1 เมษายน 2020

androidx.activity:activity:1.2.0-alpha03 และ androidx.activity:activity-ktx:1.2.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha03 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มสัญญา TakeVideo, PickContact, GetContent, GetContents, OpenDocument, OpenDocuments, OpenDocumentTree และ CreateDocument ลงในชุดสัญญาที่สร้างไว้ล่วงหน้าซึ่ง ActivityResultContracts เป็นผู้จัดหา (aosp/1262482, aosp/1266916, aosp/1268960)
  • ตอนนี้ Activity Result API รองรับการเปิดใช้งานกิจกรรมสําหรับผลลัพธ์ที่มี ActivityOptionsCompat (ไม่บังคับ) แล้ว (b/151860054)

การเปลี่ยนแปลง API

  • ตอนนี้สัญญา TakePicture จะใช้อินพุต Uri สำหรับตำแหน่งที่ควรจัดเก็บรูปภาพ สัญญาฉบับก่อนหน้าที่ไม่รับอินพุตใดๆ ได้เปลี่ยนชื่อเป็น TakePicturePreview แล้ว (aosp/1262482)
  • เปลี่ยนชื่อวิธีการ registerActivityResultCallback() ใน ActivityResultRegistry เป็น register() แล้ว (aosp/1267621)
  • เปลี่ยนชื่อเมธอด dispose() ใน ActivityResultLauncher เป็น unregister() และนํา unregisterResultCallback() ใน ActivityResultRegistry ออกแล้ว (aosp/1267621)
  • ตอนนี้เมธอด createIntent() ของ ActivityResultContact จะรับ Context เพิ่มเติมจากอินพุตเพื่อให้สร้าง Intent ที่ชัดเจนได้ (aosp/1238800)
  • ตอนนี้ ActivityResultContract สามารถลบล้าง getSynchronousResult() เพื่อแสดงผลลัพธ์ได้โดยไม่ต้องเรียกใช้ startActivityForResult สัญญา RequestPermission และ RequestPermissions จะใช้ข้อมูลนี้เพื่อแสดงสถานะ "ได้รับสิทธิ์แล้ว" อย่างถูกต้องหากมีการให้สิทธิ์ที่ขอแล้ว (b/151110799)
  • เราได้นําสัญญา Dial ที่มีให้บริการก่อนหน้านี้ออกแล้ว เนื่องจาก Intent ดังกล่าวไม่ได้มีไว้ใช้กับ startActivityForResult() (aosp/1266916)
  • ตอนนี้ Activity Result API หลายรายการที่ไม่ได้ตั้งใจจะขยายการให้บริการได้กลายเป็น final แล้ว ซึ่งรวมถึง getActivityResultRegistry(), เมธอด prepareCall(), เมธอดทั้งหมดของ ActivityResultRegistry ยกเว้น invoke() และสัญญาเริ่มต้นบางรายการที่ไม่รองรับส่วนเสริมที่ไม่บังคับ (b/152439361)

การแก้ไขข้อบกพร่อง

  • แก้ไข NullPointerException ใน ActivityResultRegistry เมื่อพยายามส่งผลลัพธ์ไปยังการเรียกกลับที่ยังไม่ได้ลงทะเบียนอีกครั้งหลังจากการเปลี่ยนแปลงการกําหนดค่า ตอนนี้ ActivityResultRegistry จะเก็บผลลัพธ์ที่รอดําเนินการเหล่านี้ไว้และส่งเมื่อมีการลงทะเบียนการเรียกกลับอีกครั้ง (b/152137004)

เวอร์ชัน 1.2.0-alpha02

18 มีนาคม 2020

androidx.activity:activity:1.2.0-alpha02 และ androidx.activity:activity-ktx:1.2.0-alpha02 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ActivityResultRegistry: ตอนนี้ ComponentActivity มี ActivityResultRegistry ที่ช่วยให้คุณจัดการโฟลว์ startActivityForResult()+onActivityResult() และ requestPermissions()+onRequestPermissionsResult() ได้โดยไม่ต้องลบล้างเมธอดใน Activity หรือ Fragment, เพิ่มความปลอดภัยของประเภทผ่าน ActivityResultContract และจัดเตรียมฮุกสําหรับการทดสอบโฟลว์เหล่านี้ ดูการรับผลลัพธ์จากกิจกรรมที่อัปเดตแล้ว (b/125158199)

เวอร์ชัน 1.2.0-alpha01

4 มีนาคม 2020

androidx.activity:activity:1.2.0-alpha01 และ androidx.activity:activity-ktx:1.2.0-alpha01 เผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับ ViewTreeLifecycleOwner.get(View) API ที่เพิ่มในวงจร 2.3.0-alpha01 เพื่อให้แสดงผลกิจกรรมเป็น LifecycleOwner สำหรับยอดดูที่เพิ่มลงในกิจกรรมโดยตรง (aosp/1182955)

การแก้ไขข้อบกพร่อง

  • แก้ไขการถดถอยที่เกิดขึ้นในกิจกรรม 1.1.0 เมื่อทำงานบนแพลตฟอร์มเวอร์ชันเก่าที่ onBackPressed() จะทำให้เกิด IllegalStateException เนื่องจากข้อบกพร่องใน android.app.FragmentManager (b/146290338)

เวอร์ชัน 1.1.0

เวอร์ชัน 1.1.0

22 มกราคม 2020

androidx.activity:activity:1.1.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.0.0

  • การผสานรวม SavedState ของ Lifecycle ViewModel: ตอนนี้ SavedStateViewModelFactory เป็นโรงงานเริ่มต้นที่ใช้เมื่อใช้ by viewModels(), ตัวสร้าง ViewModelProvider หรือ ViewModelProviders.of() ที่มี ComponentActivity หรือคลาสย่อยของ ComponentActivity

เวอร์ชัน 1.1.0-rc03

4 ธันวาคม 2019

androidx.activity:activity:1.1.0-rc03 และ androidx.activity:activity-ktx:1.1.0-rc03 เผยแพร่แล้ว เวอร์ชัน 1.1.0-rc03 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงทรัพยากร Dependency

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับ Lifecycle 2.2.0-rc03 และ Lifecycle ViewModel SavedState 1.0.0-rc03

เวอร์ชัน 1.1.0-rc02

7 พฤศจิกายน 2019

androidx.activity:activity:1.1.0-rc02 และ androidx.activity:activity-ktx:1.1.0-rc02 เผยแพร่แล้ว เวอร์ชัน 1.1.0-rc02 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงทรัพยากร Dependency

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร 2.2.0-rc02

เวอร์ชัน 1.1.0-rc01

23 ตุลาคม 2019

androidx.activity:activity:1.1.0-rc01 และ androidx.activity:activity-ktx:1.1.0-rc01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงจาก 1.1.0-beta01 เวอร์ชัน 1.1.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.1.0-beta01

9 ตุลาคม 2019

androidx.activity:activity:1.1.0-beta01 และ androidx.activity:activity-ktx:1.1.0-beta01 เผยแพร่แล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงทรัพยากร Dependency

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับ SavedState 1.0.0 เวอร์ชันเสถียร

เวอร์ชัน 1.1.0-alpha03

5 กันยายน 2019

androidx.activity:activity:1.1.0-alpha03 และ androidx.activity:activity-ktx:1.1.0-alpha03 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้กิจกรรมจะขึ้นอยู่กับ Core 1.1.0 เวอร์ชันเสถียร

แก้ไขข้อบกพร่อง

เวอร์ชัน 1.1.0-alpha02

7 สิงหาคม 2019

androidx.activity:activity:1.1.0-alpha02 และ androidx.activity:activity-ktx:1.1.0-alpha02 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้ SavedStateViewModelFactory เป็นโรงงานเริ่มต้นที่ใช้เมื่อใช้ by viewModels(), ตัวสร้าง ViewModelProvider หรือ ViewModelProviders.of() ที่มี ComponentActivity (b/135716331)

เวอร์ชัน 1.1.0-alpha01

2 กรกฎาคม 2019

androidx.activity:activity:1.1.0-alpha01 และ androidx.activity:activity-ktx:1.1.0-alpha01 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้ activity ขึ้นอยู่กับวงจร 2.2.0-alpha02 (aosp/1007817)
  • activity-ktx เพิ่ม Dependency ของ lifecycle-runtime-ktx แล้ว คุณจึงไม่จำเป็นต้องเพิ่ม lifecycle-runtime-ktx ลงใน Dependency อย่างชัดเจนอีกต่อไปเมื่อใช้ activity-ktx หรือไลบรารีที่ขึ้นอยู่กับ activity-ktx (เช่น fragment-ktx) (aosp/987162)

เวอร์ชัน 1.0.0

เวอร์ชัน 1.0.0

5 กันยายน 2019

androidx.activity:activity:1.0.0 และ androidx.activity:activity-ktx:1.0.0 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์หลักของ 1.0.0

  • ComponentActivity: ComponentActivity เป็นคลาสพื้นฐานใหม่สําหรับ FragmentActivity ใน Fragment 1.1.0 และ AppCompatActivity ใน AppCompat 1.1.0
  • activity-ktx: โมดูล activity-ktx มีส่วนขยายพร็อพเพอร์ตี้ by viewModels Kotlin สำหรับการเข้าถึง ViewModel ระบบจะรวมโมดูลนี้โดยอัตโนมัติเมื่อคุณใส่ fragment-ktx จากส่วน 1.1.0
  • OnBackPressedDispatcher: ตอนนี้คุณสามารถลงทะเบียน OnBackPressedCallback จาก LifecycleOwner ใดก็ได้ (เช่น ฟragment) เพื่อขัดจังหวะเหตุการณ์ปุ่มย้อนกลับของระบบ เพื่อเป็นทางเลือกในการคอมโพสิทแทนการลบล้าง onBackPressed() เพิ่ม Lambda ที่มีเวอร์ชันผู้รับ addCallback ไปยัง activity-ktx แล้ว ดูรายละเอียดเพิ่มเติมได้ที่ระบุเอกสารประกอบการนําทางกลับที่กําหนดเอง
  • การเลิกใช้งาน onRetainCustomNonConfigurationInstance: เราได้เลิกใช้งาน onRetainCustomNonConfigurationInstance() และ getLastCustomNonConfigurationInstance() API ที่เกี่ยวข้องแล้ว เราขอแนะนําอย่างยิ่งให้ใช้ ViewModel เพื่อจัดเก็บสถานะที่ไม่เกี่ยวข้องกับการกําหนดค่า เนื่องจากเป็นโซลูชันแบบคอมโพสิเบิลที่เหมาะกับ ViewModelStoreOwner ใดๆ ก็ตาม ซึ่งทําให้ความเป็นเจ้าของออบเจ็กต์ที่เก็บไว้ชัดเจน และมี onCleared() callback สําหรับล้างทรัพยากรเมื่อกิจกรรมถูกทำลายในที่สุด

เวอร์ชัน 1.0.0-rc01

2 กรกฎาคม 2019

androidx.activity:activity:1.0.0-rc01 และ androidx.activity:activity-ktx:1.0.0-rc01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงจาก 1.0.0-beta01 ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

เวอร์ชัน 1.0.0-beta01

5 มิถุนายน 2019

androidx.activity::activity:1.0.0-beta01 และ androidx.activity:activity-ktx:1.0.0-beta01 เผยแพร่โดยไม่มีการเปลี่ยนแปลงจาก 1.0.0-alpha08 ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

เวอร์ชัน 1.0.0-alpha08

7 พฤษภาคม 2019

androidx.activity:activity:1.0.0-alpha08 และ androidx.activity:activity-ktx:1.0.0-alpha08 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

การเปลี่ยนแปลง API

  • การเปลี่ยนแปลงที่ส่งผลต่อสถานะการทำงาน: ระบบได้นำเมธอด addOnBackPressedCallback และ removeOnBackPressedCallback ใน ComponentActivity ออกแล้ว ซึ่งก่อนหน้านี้ได้เลิกใช้งานแล้ว aosp/953857
  • เมธอด setEnabled() และ isEnabled() ของ OnBackPressedCallback เป็นเวอร์ชันสุดท้ายแล้ว b/131416833
  • วิธีการ remove() ของ OnBackPressedCallback เป็นเวอร์ชันสุดท้ายแล้ว aosp/952720
  • ตอนนี้ OnBackPressedDispatcher มีคอนสตรัคเตอร์แบบสาธารณะแล้ว ซึ่งช่วยให้คุณสร้างอินสแตนซ์ของคุณเองเพื่อทดสอบ ฯลฯ ได้ aosp/953431
  • ตอนนี้ onBackPressed() สำหรับ ComponentActivity มีการทำเครื่องหมายเป็น @MainThread อย่างชัดเจนแล้ว aosp/952721

แก้ไขข้อบกพร่อง

  • แก้ไข ConcurrentModificationException เมื่อเรียก remove() จากภายในเมธอด handleOnBackPressed() ของ OnBackPressedCalback ที่เพิ่มด้วย LifecycleOwner b/131765095

เวอร์ชัน 1.0.0-alpha07

25 เมษายน 2019

androidx.activity:activity:1.0.0-alpha07 และ androidx.activity:activity-ktx:1.0.0-alpha07 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

การเปลี่ยนแปลง API

รุ่นนี้ทําการเปลี่ยนแปลงที่สําคัญในการจัดการ onBackPressed() ดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับแบ็กกราวด์ที่กำหนดเองฉบับปรับปรุง

  • วิธีการสำหรับ OnBackPressedCallback และ OnBackPressedDispatcher ได้รับการทําเครื่องหมายเป็น @MainThread แล้ว (aosp/943813)
  • เมธอด handleOnBackPressed() จะไม่แสดงผล boolean อีกต่อไป แต่ตอนนี้ OnBackPressedCallback เป็นคลาสนามธรรมที่เปิดหรือปิดใช้ได้ โดยระบบจะเรียก handleOnBackPressed() เฉพาะเมื่อเมธอด isEnabled() ใหม่แสดงผลเป็น "จริง" ซึ่งคุณต้องจัดการปุ่มย้อนกลับ (aosp/944518)
  • เมธอด addCallback ของ OnBackPressedDispatcher จะไม่แสดงผลอินสแตนซ์ Cancellable อีกต่อไป ตอนนี้ OnBackPressedCallback มีเมธอด remove() ที่ทํางานตามฟังก์ชันนี้ ซึ่งช่วยให้คุณเรียก remove() ระหว่าง handleOnBackPressed() ได้ (aosp/944519) (aosp/946316)
  • ตอนนี้ activity-ktx มี Callback ระดับตัวรับสำหรับ addCallback ที่ยอมรับ Lambda ที่ใช้ handleOnBackPressed() และมีสิทธิ์เข้าถึง isEnabled และ remove() (aosp/944520)

เวอร์ชัน 1.0.0-alpha06

3 เมษายน 2019

androidx.activity:activity:1.0.0-alpha06 และ androidx.activity:activity-ktx:1.0.0-alpha06 เผยแพร่แล้ว ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

การเปลี่ยนแปลง API

  • ตอนนี้ ComponentActivity มีคอนสตรัคเตอร์ที่ 2 ซึ่งใช้ @LayoutRes int ซึ่งมาแทนที่ลักษณะการทำงานก่อนหน้านี้ของการกำกับเนื้อหาในคลาส AppCompatActivity ด้วย @ContentView แนวทางนี้ใช้ได้ทั้งในโมดูลแอปและโมดูลไลบรารี (b/128352521)
  • API ที่เกี่ยวข้องกับ OnBackPressedCallback ใน ComponentActivity เลิกใช้งานแล้วเพื่อสนับสนุน OnBackPressedDispatcher ใหม่ ซึ่งเรียกดูได้ผ่าน getOnBackPressedDispatcher() (aosp/922523)
  • ตอนนี้เมธอดในการเพิ่ม OnBackPressedCallback ใหม่ลงใน OnBackPressedDispatcher จะแสดงผลออบเจ็กต์ Cancellable ซึ่งช่วยให้นำการเรียกกลับออกได้โดยไม่ต้องอ้างอิง OnBackPressedDispatcher อย่างชัดเจน (aosp/922523)
  • ตอนนี้การเพิ่ม OnBackPressedCallback ที่มี LifecycleOwner ที่เชื่อมโยงจะส่งผลให้มีการเพิ่มและนํา OnBackPressedCallback ออกเมื่อมีการเริ่มและหยุดวงจรตามลําดับ (aosp/922523)

เวอร์ชัน 1.0.0-alpha05

13 มีนาคม 2019

androidx.activity:activity:1.0.0-alpha05 และ androidx.activity:activity-ktx:1.0.0-alpha05 เผยแพร่แล้ว ดูรายการคอมมิตทั้งหมดที่รวมอยู่ในรุ่นนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้การค้นหาคำอธิบายประกอบ @ContentView ได้รับการแคชแล้ว (b/123709449)

เวอร์ชัน 1.0.0-alpha04

30 มกราคม 2019

androidx.activity:activity 1.0.0-alpha04และ androidx.activity:activity-ktx 1.0.0-alpha04 เผยแพร่แล้ว

ฟีเจอร์ใหม่

  • เพิ่มการรองรับคําอธิบายประกอบคลาส @ContentView ซึ่งช่วยให้คุณระบุไฟล์ XML เลย์เอาต์ที่จะขยายแทนการใช้ setContentView() ได้ (aosp/837619)

การเปลี่ยนแปลง API

  • เพิ่มหมายเหตุว่าไม่ควรลบล้าง getViewModelStore() และจะใช้เป็นค่าสุดท้ายในรุ่นต่อๆ ไป โปรดส่งคำขอฟีเจอร์หากคุณกำลังลบล้างเมธอดนี้อยู่ (aosp/837619)

แก้ไขข้อบกพร่อง

  • ตอนนี้โมดูล activity ต้องใช้ ViewModel เวอร์ชัน 2.1.0-alpha02 เพื่อให้สอดคล้องกับทรัพยากร Dependency ของโมดูล activity-ktx

เวอร์ชัน 1.0.0-alpha03

17 ธันวาคม 2018

androidx.activity 1.0.0-alpha03 ได้รับการปล่อยแล้ว

ฟีเจอร์ใหม่

  • ตอนนี้ ComponentActivity ใช้ BundleSavedStateRegistryOwner และขึ้นอยู่กับไลบรารี SavedState ที่เพิ่งเปิดตัว [aosp/815133]
  • ตอนนี้ ComponentActivity ทำงานได้รอบข้อบกพร่องของเฟรมเวิร์ก Android ที่จะทําให้ InputMethodManager แสดงผลมุมมองที่โฟกัสล่าสุด [b/37122102]

เวอร์ชัน 1.0.0-alpha02

3 ธันวาคม 2018

การเปลี่ยนแปลง API

  • เพิ่มหมายเหตุว่าgetLifecycle()ไม่ควรถูกลบล้างและจะกลายเป็นfinalในรุ่นต่อๆ ไป โปรดส่งคำขอฟีเจอร์หากคุณกำลังลบล้างเมธอดนี้อยู่ (aosp/815834)

เวอร์ชัน 1.0.0-alpha01

5 พฤศจิกายน 2018

androidx.activity 1.0.0-alpha01 เปิดตัว ComponentActivity ซึ่งเป็นคลาสพื้นฐานใหม่ของ FragmentActivity และ AppCompatActivity ที่มีอยู่

ฟีเจอร์ใหม่

  • ตอนนี้คุณสามารถลงทะเบียน OnBackPressedCallback ผ่าน addOnBackPressedCallback เพื่อรับการเรียกกลับ onBackPressed() โดยไม่ต้องลบล้างเมธอดในกิจกรรม
  • เพิ่มby viewModels()ตัวรับมอบสิทธิ์พร็อพเพอร์ตี้ Kotlin ใหม่สําหรับการดึงข้อมูลViewModelจาก ComponentActivity
  • ตอนนี้ระบบจะยกเลิกเหตุการณ์อินพุตที่รอดำเนินการ (เช่น การคลิก) ใน onStop()

การเปลี่ยนแปลง API

  • การใช้งาน LifecycleOwner และ ViewModelStoreOwner ได้ย้ายจาก FragmentActivity ไปยัง ComponentActivity แล้ว
  • onRetainCustomNonConfigurationInstance เลิกใช้งานแล้ว ใช้ ViewModel สำหรับจัดเก็บออบเจ็กต์ที่ต้องอยู่รอดจากการเปลี่ยนแปลงการกําหนดค่า