กิจกรรม
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
2 กรกฎาคม 2025 | 1.10.1 | 1.11.0-rc01 | - | 1.12.0-alpha04 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มการอ้างอิงในกิจกรรม คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
ดึงดูด
dependencies { def activity_version = "1.10.1" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.10.1" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.12
เวอร์ชัน 1.12.0-alpha04
2 กรกฎาคม 2025
androidx.activity:activity:1.12.0-alpha04
androidx.activity:activity-compose:1.12.0-alpha04
และ androidx.activity:activity-ktx:1.12.0-alpha04
ออกอากาศแล้ว เวอร์ชัน 1.12.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลงการขึ้นต่อกัน
- ตอนนี้กิจกรรมขึ้นอยู่กับ NavigationEvent Alpha04
เวอร์ชัน 1.12.0-alpha03
18 มิถุนายน 2025
androidx.activity:activity:1.12.0-alpha03
androidx.activity:activity-compose:1.12.0-alpha03
และ androidx.activity:activity-ktx:1.12.0-alpha03
ออกอากาศแล้ว เวอร์ชัน 1.12.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
ตอนนี้
OnBackPressedDispatcher
และNavigationEventDispatcher
ได้รับการเริ่มต้นอย่างเฉื่อยชาในComponentActivity
แล้ว (I710e6)แก้ไขปัญหาเกี่ยวกับ
OnBackPressedDistpatcher
ที่ทำให้เกิดสิ่งต่อไปนี้- เฉพาะผู้จัดส่งรายล่าสุดเท่านั้นที่
OnBackPressedCallback
ได้รับการเพิ่มให้รับการแจ้งเตือนเกี่ยวกับสถานะที่เปิดใช้ (b/418715930) OnBackPressedDispatcher
จะนำการเรียกกลับที่ไม่ถูกต้องออกเมื่อใช้ฟังก์ชันaddCallback
ที่ใช้รอบอายุ (b/422714753)OnBackPressedDispatcher.remove()
ไม่ได้นำอินสแตนซ์ทั้งหมดของOnBackPressedCallback
ที่ลงทะเบียนออก (b/423024414)
- เฉพาะผู้จัดส่งรายล่าสุดเท่านั้นที่
เวอร์ชัน 1.12.0-alpha02
4 มิถุนายน 2025
androidx.activity:activity:1.12.0-alpha02
androidx.activity:activity-compose:1.12.0-alpha02
และ androidx.activity:activity-ktx:1.12.0-alpha02
ออกอากาศแล้ว เวอร์ชัน 1.12.0-alpha02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- จาก NavigationEvent
1.0.0-alpha02
: แก้ไขConcurrentModificationException
ที่อาจเกิดขึ้นเมื่อมีการเรียกNavigationEventCallback.remove()
เนื่องจากการแก้ไขรายการภายในของรายการที่ปิดได้พร้อมกัน (I63066)
เวอร์ชัน 1.12.0-alpha01
20 พฤษภาคม 2025
androidx.activity:activity:1.12.0-alpha01
androidx.activity:activity-compose:1.12.0-alpha01
และ androidx.activity:activity-ktx:1.12.0-alpha01
ออกอากาศแล้ว เวอร์ชัน 1.12.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
ComponentActivity
และComponentDialog
ได้รับการผสานรวมกับ NavigationEvent1.0.0-alpha01
ผ่านNavigationEventDispatcherOwner
API ตอนนี้คุณสามารถดึงข้อมูลNavigationEventDispatcher
จากComponentActivity
ผ่านช่องnavigationEventDispatcher
ได้แล้ว เนื่องจากเราได้เขียนOnBackPressedDispatcher
ใหม่บนไลบรารีใหม่ การใช้งานก่อนหน้านี้ทั้งหมดจึงควรยังคงทำงานได้อย่างถูกต้อง คุณควรใช้NavigationEventDispatcher
และNavigationEventCallback
ต่อไป (Ib8eed, I6cc44, Ib7724, I9a0f7,b/412597031, b/415028038, b/412596729, b/412597140, b/412596012)
เวอร์ชัน 1.11
เวอร์ชัน 1.11.0-rc01
23 เมษายน 2025
androidx.activity:activity:1.11.0-rc01
androidx.activity:activity-compose:1.11.0-rc01
และ androidx.activity:activity-ktx:1.11.0-rc01
ออกอากาศแล้ว เวอร์ชัน 1.11.0-rc01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-beta01
9 เมษายน 2025
androidx.activity:activity:1.11.0-beta01
androidx.activity:activity-compose:1.11.0-beta01
และ androidx.activity:activity-ktx:1.11.0-beta01
ออกอากาศแล้ว เวอร์ชัน 1.11.0-beta01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.0-alpha02
26 มีนาคม 2025
androidx.activity:activity:1.11.0-alpha02
androidx.activity:activity-compose:1.11.0-alpha02
และ androidx.activity:activity-ktx:1.11.0-alpha02
ออกอากาศแล้ว เวอร์ชัน 1.11.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- ผสานรวม
EDGE_NONE
และframeTimeMillis
ใหม่จาก Android 16 Beta03 เข้ากับBackEventCompat
ที่OnBackPressedCallback
มอบให้ในฟังก์ชันhandleOnBackStarted
และhandleOnBackProgressed
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ระบบจะรวบรวมกิจกรรมด้วย API 36 (I510e8, b/301910674)
เวอร์ชัน 1.11.0-alpha01
12 มีนาคม 2025
androidx.activity:activity:1.11.0-alpha01
androidx.activity:activity-compose:1.11.0-alpha01
และ androidx.activity:activity-ktx:1.11.0-alpha01
ออกอากาศแล้ว เวอร์ชัน 1.11.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
MediaCapabilities
API ลงในPickVisualMediaRequest
เพื่อให้แอปพลิเคชันระบุความสามารถของสื่อ เช่น ประเภท HDR ที่รองรับ (Ic3ee7)
เวอร์ชัน 1.10
เวอร์ชัน 1.10.1
26 กุมภาพันธ์ 2025
androidx.activity:activity:1.10.1
androidx.activity:activity-compose:1.10.1
และ androidx.activity:activity-ktx:1.10.1
ออกอากาศแล้ว เวอร์ชัน 1.10.1 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้คุณสามารถแก้ไข
ViewTree
OnBackPressedDispatcherOwners
และFullyDrawnReporterOwners
ผ่านผู้ปกครองที่แยกกันของมุมมอง เช่นViewOverlay
ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบหลักหรือเอกสารประกอบในViewTree.setViewTreeDisjointParent
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบหลักที่ไม่มีการเชื่อมต่อ (Ie7750)
เวอร์ชัน 1.10.0
15 มกราคม 2025
androidx.activity:activity:1.10.0
androidx.activity:activity-compose:1.10.0
และ androidx.activity:activity-ktx:1.10.0
ออกอากาศแล้ว เวอร์ชัน 1.10.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงสำคัญตั้งแต่เวอร์ชัน 1.9.0
PhotoPicker
ตอนนี้ให้คุณเลือกรูปภาพตามลำดับและเลือกแท็บ (อัลบั้มหรือรูปภาพ) ที่ควรแสดงในตอนแรกได้แล้ว- สัญญา
PickVisualMedia
และPickMultipleVisualMedia
Activity Result ที่ทริกเกอร์เครื่องมือเลือกรูปภาพจะไม่มอบสิทธิ์ให้ Google Play Services โดยตรงอีกต่อไปหากเครื่องมือเลือกรูปภาพของระบบไม่พร้อมใช้งาน แต่จะใช้การดำเนินการACTION_SYSTEM_FALLBACK_PICK_IMAGES
สาธารณะและส่วนเสริมที่เกี่ยวข้องเพื่อมอบประสบการณ์การใช้งานเครื่องมือเลือกรูปภาพที่สอดคล้องกันแก่ OEM และแอปของระบบเป็นตัวเลือกสำรอง LocalActivity
องค์ประกอบใหม่ในเครื่องที่ให้Activity
สำหรับขอบเขตปัจจุบัน ซึ่งช่วยให้นักพัฒนาแอปไม่ต้องรับActivity
จากLocalContext
เวอร์ชัน 1.10.0-rc01
11 ธันวาคม 2024
androidx.activity:activity:1.10.0-rc01
androidx.activity:activity-compose:1.10.0-rc01
และ androidx.activity:activity-ktx:1.10.0-rc01
ออกอากาศแล้ว เวอร์ชัน 1.10.0-rc01 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การเปลี่ยนสถานะเป็นเปิดใช้ขณะที่
PredictiveBackHandler
ใช้งานอยู่จะทำให้การเรียกกลับลัดวงจรทันที ตอนนี้ระบบจะดำเนินการโทรกลับปัจจุบันให้เสร็จสมบูรณ์โดยไม่คำนึงถึงการเปลี่ยนแปลงสถานะที่เปิดใช้ (Ib8719)
เวอร์ชัน 1.10.0-beta01
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
นอกจากนี้ ยังมาพร้อมกับกฎการตรวจสอบใหม่ที่จะตรวจสอบเมื่อมีการแคสต์LocalContext
ไปยังActivity
อย่างไม่ถูกต้อง (I7746a, b/283009666)
การแก้ไขข้อบกพร่อง
- จากกิจกรรม
1.9.3
:PredictiveBackHandler
จะไม่เรียกใช้การเรียกกลับอีกต่อไปหลังจากที่ปิดใช้ตัวแฮนเดิลแล้ว ซึ่งจะแก้ไขปัญหาที่NavHost
จาก Navigation Compose จะแสดงIndexOutOfBoundsException
(I3f75e, b/365027664, b/340202286)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ 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
Activity Result ที่ทริกเกอร์เครื่องมือเลือกรูปภาพจะไม่มอบสิทธิ์ให้ Google Play Services โดยตรงอีกต่อไปหากเครื่องมือเลือกรูปภาพของระบบไม่พร้อมใช้งาน แต่จะใช้การดำเนินการ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)
- จากกิจกรรม
1.9.2
: แก้ไขปัญหาที่ API กิจกรรม ComposePredictiveBackHandler
จะยังคงจัดการท่าทางสัมผัสย้อนกลับของระบบในเฟรมที่ปิดใช้ ซึ่งอาจส่งผลให้ไลบรารี เช่น Navigation Compose จัดการการย้อนกลับแม้ว่าจะมี Back Stack ว่างเปล่า ซึ่งส่งผลให้เกิด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 มีการคอมมิต lthco เหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ API ของ Activity Compose
PredictiveBackHandler
จะยังคงจัดการท่าทางสัมผัสย้อนกลับของระบบในเฟรมที่ปิดใช้ ซึ่งอาจส่งผลให้ไลบรารี เช่น Navigation Compose จัดการการย้อนกลับแม้จะมี Back Stack ว่างเปล่า ซึ่งส่งผลให้เกิด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()
ขณะจัดการการย้อนกลับ เนื่องจากจะทำให้การเคลื่อนไหวย้อนกลับแบบคาดเดาใช้งานไม่ได้เสมอ ดูรายละเอียดเพิ่มเติมได้ที่คู่มือแนวทางปฏิบัติแนะนำ - เราได้เขียน 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 มีการเปลี่ยนแปลงเหล่านี้
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ Profile Installer 1.3.1
เวอร์ชัน 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
เป็นส่วนหนึ่งของการสร้าง Activity (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
- ตอนนี้ API
OnBackPressedCallback
,BackHandler
และPredictiveBackHandler
จะแสดงคำเตือนเมื่อเรียกonBackPressedDispatcher.onBackPressed()
ขณะจัดการการย้อนกลับ เนื่องจากจะทำให้การเคลื่อนไหวย้อนกลับแบบคาดเดาใช้งานไม่ได้เสมอ ดูรายละเอียดเพิ่มเติมได้ที่คู่มือแนวทางปฏิบัติแนะนำ (1e4222, 2c950d, b/287505200)
การแก้ไขข้อบกพร่อง
- หากมีการส่งเหตุการณ์ย้อนกลับจากระบบที่เริ่มต้นในระหว่างท่าทางสัมผัสย้อนกลับแบบคาดการณ์ที่กำลังทำงานอยู่ ระบบจะยกเลิกท่าทางสัมผัสย้อนกลับแบบคาดการณ์ที่กำลังทำงานอยู่และเหตุการณ์ย้อนกลับใหม่จะเข้ามาแทนที่เพื่อเริ่มท่าทางสัมผัสย้อนกลับแบบคาดการณ์ใหม่ (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 วิธีนี้จะช่วยให้มั่นใจได้ว่าค่า Null ของ Generics ในสัญญาที่ส่งไปยังregister
จะส่งผ่านไปยังActivityResultLauncher
ที่ส่งคืนให้คุณอย่างถูกต้อง (I121f0)ActivityResult
ได้รับการเขียนใหม่ใน Kotlin เราได้ย้ายส่วนขยาย Kotlin ที่รองรับการแยกโครงสร้างลงในช่องresultCode
และdata
จากactivity-ktx
ไปยังactivity
แล้วActivityResult
(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 ที่ใช้เครื่องมือเลือกรูปภาพสำรองของระบบเพื่อรองรับทั้ง 2 อย่างเพื่อให้มั่นใจว่ามีความเข้ากันได้ในวงกว้างที่สุด (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
method ได้กลายเป็นพร็อพเพอร์ตี้ Kotlin แบบนามธรรมแล้ว การเปลี่ยนแปลงนี้เข้ากันได้กับไบนารี แต่จะทำให้แหล่งที่มาใช้งานไม่ได้หากคุณเขียนการติดตั้งใช้งานActivityResultLauncher
ใน Kotlin (Id4615)PickVisualMediaRequest
มี API ระดับต่ำสุดเดียวกันที่ 19 เหมือนกับสัญญาผลลัพธ์ของกิจกรรมPickVisualMedia
แล้ว (Id6e21)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ Core
1.13.0-alpha01
(I14f31)
เวอร์ชัน 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
ของสัญญา Activity เครื่องมือเลือกรูปภาพเพื่อส่งคีย์EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
อย่างถูกต้อง แทนที่จะใช้ส่วนที่มีคีย์"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
ขอแนะนำอย่างยิ่งหากคุณเป็น OEM ที่ใช้เครื่องมือเลือกรูปภาพสำรองของระบบเพื่อรองรับทั้ง 2 อย่างเพื่อให้มั่นใจว่ามีความเข้ากันได้ในวงกว้างที่สุด (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
แม้ว่าจะมีการเพิ่ม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
มีการเรียกกลับการย้อนกลับที่คาดการณ์ได้ใหม่สำหรับการจัดการท่าทางสัมผัสการย้อนกลับที่เริ่มต้น ความคืบหน้าตลอดท่าทางสัมผัส และการยกเลิกท่าทางสัมผัสการย้อนกลับ นอกเหนือจากการเรียกกลับhandleOnBackPressed()
ก่อนหน้าเมื่อมีการยืนยันท่าทางสัมผัสการย้อนกลับ นอกจากนี้ ยังมาพร้อมกับPredictiveBackHandler
Composable เพื่อจัดการเหตุการณ์ท่าทางสัมผัสย้อนกลับแบบคาดการณ์ใน Activity Compose โดยจะแสดง Flow ของออบเจ็กต์ BackEventCompat ที่ต้องรวบรวมในแลมบ์ดาที่ระงับที่คุณระบุ
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-เบต้า01
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
ที่ต้องรวบรวมใน Lambda ที่ระงับที่คุณระบุPredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }
นอกจากนี้ ยังมาพร้อมคำเตือนขณะคอมไพล์ผ่านกฎ Lint เพื่อให้แน่ใจว่ามีการเรียกใช้
Flow
collect()
(Id2773, b/294884345)ตอนนี้
onBackPressedDispatcher
ในComponentActivity
จะได้รับการเริ่มต้นใช้งานแบบเลื่อนเวลาเพื่อให้ระบบสร้างเมื่อจำเป็นเท่านั้น (I0bf8e)
การแก้ไขข้อบกพร่อง
ComponentActivity
จะไม่แสดง NPE ใน Android 13 อีกต่อไปเมื่อได้รับonBackPressed()
การเรียกกลับและ Activity ได้รับการ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 ตอนนี้คุณสามารถลบล้างพารามิเตอร์ LambdadetectDarkMode
เพื่อระบุตรรกะที่กำหนดเองสำหรับการตรวจจับโหมดกลางคืนได้แล้ว (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>
ที่ไม่บังคับ ซึ่งช่วยให้เจ้าของ Dispatcher ได้รับ 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.7.1: -
ReportFullyDrawExecuter
จะไม่รั่วไหลอีกต่อไปเมื่อใช้ComponentActivity
กับActivityScenario
(Id2ff2, b/277434271)
เวอร์ชัน 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)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ Fragment ทำให้ MenuHost ไม่ถูกต้องอย่างไม่ถูกต้องและทำให้เมนูอื่นๆ ในกิจกรรมมีลักษณะการทำงานที่ไม่คาดคิด (I9404e, b/244336571)
การเปลี่ยนแปลงอื่นๆ
- ตอนนี้
ActivityResultRegister
ใช้Random
ของ Kotlin แทน 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
ออกอากาศแล้ว พัฒนาจากสาขาภายใน
การอัปเดตการขึ้นต่อกัน
- จากกิจกรรม
1.7.0-rc01
: ตอนนี้กิจกรรมขึ้นอยู่กับLifecycle 2.6.0
เวอร์ชัน 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
ที่แนบมากับหน้าต่างผ่านข้อกำหนดของViewTree
API IntentSenderRequest.Builder.setFlags()
ตอนนี้ช่วยให้คุณตั้งค่าสถานะหลายรายการจากIntent
ได้แล้ว แทนที่จะตั้งค่าได้เพียงรายการเดียว
การแปลง 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 APIs
ComponentActivity
มีอินสแตนซ์ FullyDrawnReporter
ที่ช่วยให้คอมโพเนนต์หลายรายการรายงานได้เมื่อพร้อมสำหรับการโต้ตอบ ComponentActivity
จะรอให้คอมโพเนนต์ทั้งหมดเสร็จสมบูรณ์ก่อนที่จะเรียกใช้ reportFullyDrawn()
ในนามของคุณ API เหล่านี้จะจัดการข้อกำหนดด้านเวลาให้คุณ และไม่จำเป็นต้องเรียกใช้เป็นส่วนหนึ่งของการเรียกใช้ onDraw
เราขอแนะนำให้เปิดใช้ API ต่อไปนี้
- ส่งสัญญาณไปยัง Android Runtime เมื่อการเริ่มต้นเสร็จสมบูรณ์ เพื่อให้มั่นใจว่าโค้ดทั้งหมดที่ทำงานระหว่างลำดับการเริ่มต้นแบบหลายเฟรมจะรวมอยู่ด้วยและได้รับการจัดลำดับความสำคัญสำหรับการคอมไพล์ในเบื้องหลัง
- การส่งสัญญาณ Macrobenchmark และ Play Vitals เมื่อควรพิจารณาว่าแอปพลิเคชันแสดงผลอย่างสมบูรณ์สำหรับเมตริกการเริ่มต้น เพื่อให้คุณติดตามประสิทธิภาพได้
เราได้เพิ่ม Activity Compose API 3 รายการเพื่อให้ใช้ FullyDrawnReporter
จาก Composable แต่ละรายการได้สะดวกยิ่งขึ้น ดังนี้
ReportDrawn
แสดงว่า Composable พร้อมสำหรับการโต้ตอบทันทีReportDrawnWhen
รับค่าพยากรณ์ (เช่นlist.count > 0
) เพื่อระบุว่า Composable พร้อมสำหรับการโต้ตอบเมื่อใดReportDrawnAfter
ใช้เมธอดระงับซึ่งเมื่อเสร็จสมบูรณ์แล้วจะบ่งบอกว่าคุณพร้อมสำหรับการโต้ตอบ
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
2.6.1
(8fc31d) - ตอนนี้กิจกรรมจะขึ้นอยู่กับ ProfileInstaller
1.3.0
(83d3b1)
เวอร์ชัน 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 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ
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()
ตอนนี้ช่วยให้คุณตั้งค่าสถานะหลายรายการจากIntent
ได้แล้ว แทนที่จะตั้งค่าได้เพียงรายการเดียว (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
Activity Result จะใช้เครื่องมือเลือกรูปภาพที่ให้บริการโดยบริการ 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
composable ที่ทำเครื่องหมายกิจกรรมว่าพร้อมเรียกใช้ทันที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 APIs
ComponentActivity
มีอินสแตนซ์ FullyDrawnReporter
ที่ช่วยให้คอมโพเนนต์หลายรายการรายงานได้เมื่อพร้อมสำหรับการโต้ตอบ ComponentActivity
จะรอให้คอมโพเนนต์ทั้งหมดเสร็จสมบูรณ์ก่อนที่จะเรียกใช้ reportFullyDrawn()
ในนามของคุณ API เหล่านี้จะจัดการข้อกำหนดด้านเวลาให้คุณ และไม่จำเป็นต้องเรียกใช้เป็นส่วนหนึ่งของการเรียกใช้ onDraw
เราขอแนะนำให้เปิดใช้ API ต่อไปนี้
- ส่งสัญญาณไปยัง Android Runtime เมื่อการเริ่มต้นเสร็จสมบูรณ์ เพื่อให้มั่นใจว่าโค้ดทั้งหมดที่ทำงานระหว่างลำดับการเริ่มต้นแบบหลายเฟรมจะรวมอยู่ด้วยและได้รับการจัดลำดับความสำคัญสำหรับการคอมไพล์ในเบื้องหลัง
- การส่งสัญญาณ Macrobenchmark และ Play Vitals เมื่อควรพิจารณาว่าแอปพลิเคชันแสดงผลอย่างสมบูรณ์สำหรับเมตริกการเริ่มต้น เพื่อให้คุณติดตามประสิทธิภาพได้
เราได้เพิ่ม Activity Compose API 2 รายการเพื่อให้ใช้ FullyDrawnReporter
จาก Composable แต่ละรายการได้สะดวกยิ่งขึ้น ดังนี้
ReportDrawnWhen
รับค่าพยากรณ์ (เช่นlist.count > 0
) เพื่อระบุว่า Composable พร้อมสำหรับการโต้ตอบเมื่อใด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
จะส่งการเรียกกลับทั้ง 2 รายการของonMultiWindowModeChanged()
เสมอ (Ic4d85) ActivityResultRegistry
จะไม่แสดงผลลัพธ์ให้กับActivityResultCallback
อีกต่อไปเมื่อการเรียกใช้launch
ทำให้เกิดException
และมีการลงทะเบียน Callback โดยไม่มีLifecycleOwner
(Ia7ff7, b/238350794)ComponentActivity
จะส่งการเรียกเมนูอย่างถูกต้องโดยไม่ต้องเรียกใช้ฟังก์ชันหลักในกิจกรรม (Ie33c5, b/238057118)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้
Activity
ไลบรารีขึ้นอยู่กับ Lifecycle2.5.1
แล้ว (If6697)
เวอร์ชัน 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) - ตอนนี้ชั้นเรียนที่ลบล้างการเรียกกลับของ
ComponentActivity
จะมีการเรียกกลับที่ส่งเสมอonPictureInPictureModeChanged()
(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
และมีการลงทะเบียน Callback โดยไม่มีLifecycleOwner
(Ia7ff7, b/238350794) - จากกิจกรรม
1.5.1
: ตอนนี้ComponentActivity
จะส่งการเรียกเมนูไปยังการลบล้างonPrepareOptionMenu()
,onCreateOptionsMenu()
และonOptionsItemSelected()
อย่างถูกต้องโดยไม่ต้องเรียกใช้ฟังก์ชันหลัก (Ie33c5, b/238057118)
การอัปเดตการขึ้นต่อกัน
- จากกิจกรรม
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 เพื่อให้สอดคล้องกับ Tiramisu Beta 3 SDK
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องในอุปกรณ์รุ่นเก่าเมื่อตรวจสอบส่วนขยาย 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 ระดับบนสุดจะทำให้เกิด Stack Overflow - ผสานรวม
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
ออกอากาศแล้ว
- หมายเหตุ: เวอร์ชันนี้จะคอมไพล์กับ Android 13 Developer Beta 1 SDK เท่านั้น
ฟีเจอร์ใหม่
- เพิ่ม
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 เท่านั้น
ฟีเจอร์ใหม่
- รวมการเปลี่ยนแปลงใน Android 13 Dev Preview 2 เข้ากับ
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
และมีการลงทะเบียน Callback โดยไม่มีLifecycleOwner
(Ia7ff7, b/238350794)ตอนนี้
ComponentActivity
จะส่งการเรียกเมนูไปยังการลบล้างonPrepareOptionMenu()
,onCreateOptionsMenu()
และonOptionsItemSelected()
อย่างถูกต้อง โดยไม่ต้องเรียกฟังก์ชันหลัก (Ie33c5, b/238057118)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ไลบรารี
Activity
ขึ้นอยู่กับ Lifecycle2.5.1
แล้ว (If6697)
เวอร์ชัน 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
ด้วย ซึ่งช่วยให้มุมมองมีวิธีทั่วไปในการเรียกข้อมูล Dispatcher ที่ถูกต้อง ไม่ว่าจะอยู่ในComponentActivity
หรือComponentDialog
- อินเทอร์เฟซ Callback -
ComponentActivity
ตอนนี้ใช้ชุดอินเทอร์เฟซ Callback แบบแยกส่วนที่ใช้แทน Callback ของActivity
ได้แล้ว อินเทอร์เฟซเหล่านี้ ได้แก่OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- การผสานรวม CreationExtras - ตอนนี้
ComponentActivity
สามารถระบุViewModelProvider.Factory
แบบไม่มีสถานะผ่าน Lifecycle2.5.0
ของCreationExtras
ได้แล้ว
การเปลี่ยนแปลงอื่นๆ
- เลิกใช้งานตัวสร้างที่ไม่มีพารามิเตอร์สำหรับ
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 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
2.4.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 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
ComponentActivity
ของonPanelClosed()
จะเรียกใช้ superonPanelClosed()
ด้วย ซึ่งจะแก้ไขปัญหาที่ไม่ได้เรียกใช้เมธอด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 ซึ่งเปิดตัวเป็นส่วนหนึ่งของ Lifecycle2.5.0-alpha01
แล้ว (Ie7e00, b/207012584)- เพิ่ม
ComponentDialog
ซึ่งเป็นคลาสย่อยของDialog
ที่มีOnBackPressedDispatcher
ซึ่งจะเรียกใช้เมื่อกดปุ่มย้อนกลับของระบบ ขณะที่กล่องโต้ตอบแสดงอยู่ ที่สำคัญ คลาสย่อยนี้ยังตั้งค่าViewTreeOnBackPressedDispatcherOwner
ด้วย ซึ่งช่วยให้มุมมอง มีวิธีทั่วไปในการเรียกข้อมูล Dispatcher ที่ถูกต้อง ไม่ว่าจะอยู่ใน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()
การเรียกกลับหรือ การเรียกกลับไปยัง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 APIs ซึ่งได้แก่
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)
การมีส่วนร่วมภายนอก
เวอร์ชัน 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
- ชิ้นงาน Activity 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
การเรียกกลับอย่างถูกต้อง และกู้คืนเพื่อให้การเรียกกลับไม่ซ้ำกันใน 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)- การใช้ Fragment เวอร์ชันที่ไม่เสถียรที่สูงกว่า
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
จะแสดงผลค่าที่ เป็น Null ได้ เพื่อให้ระบุได้ดียิ่งขึ้นว่าค่าดังกล่าวพร้อมใช้งาน ในการเรียบเรียงปัจจุบันหรือไม่ API ที่ต้องใช้ API เหล่านั้น เช่นBackHandler
และrememberLauncherForActivityResult()
ตามลำดับ จะแสดงข้อผิดพลาดที่อธิบายได้มากขึ้นหาก ไม่พบเจ้าของที่เกี่ยวข้องNavHost
จะทำงานได้ แม้ว่าจะไม่พบOnBackPressedDispatcherOwner
เช่น กรณีที่ดูตัวอย่างNavHost
(I7d8b4)
การแก้ไขข้อบกพร่อง
- ตอนนี้
BackHandler
จะสกัดกั้นการกดกลับได้อย่างถูกต้องในกรณีที่ Activity เป็น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 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- จาก Activity 1.2.2: แก้ไขปัญหาในการตรวจสอบ Lint ของ
InvalidFragmentVersionForActivityResult
ที่ทําให้เกิดผลบวกลวงเมื่อใช้ Fragment 1.3.1 ขึ้นไป (I54da1, b/182388985) - จาก Activity 1.2.2: ตอนนี้
ComponentActivity
จะหลีกเลี่ยงClassNotFoundException
เมื่อเปิดIntent
จากActivityResultContract
ที่เคยถือเป็นส่วนเสริมในIntent
อื่น (Ieff05, b/182906230)
การอัปเดตการขึ้นต่อกัน
- จากกิจกรรม 1.2.2: ตอนนี้กิจกรรมขึ้นอยู่กับวงจร
2.3.1
แล้ว
เวอร์ชัน 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
ที่ประกอบกันได้ สำหรับการรับผลลัพธ์จากกิจกรรมภายใน Composable (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
เมื่อใช้ Compose1.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
และไลบรารีที่ขึ้นอยู่กับ Activity Compose เช่น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
: ตอนนี้ระบบจะบันทึกและกู้คืนการเรียกกลับ ActivityResultRegistry อย่างถูกต้องแล้ว เพื่อไม่ให้มีการทำซ้ำการเรียกกลับใน 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 ของ Fragment เวอร์ชันใหม่กว่า (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 ที่ทำให้เกิดผลบวกลวงเมื่อใช้ Fragment 1.3.1 ขึ้นไป (I54da1, b/182388985) ComponentActivity
จะหลีกเลี่ยงClassNotFoundException
เมื่อเปิดตัวIntent
จากActivityResultContract
ที่เคยเป็นตัวสำรองในIntent
อื่น (Ieff05, b/182906230)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
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 APIs:
ComponentActivity
ตอนนี้มีActivityResultRegistry
ที่ช่วยให้คุณจัดการstartActivityForResult()
+onActivityResult()
รวมถึงโฟลว์requestPermissions()
+onRequestPermissionsResult()
ได้โดยไม่ต้องแทนที่เมธอดใน Activity หรือ Fragment, เพิ่มความปลอดภัยของประเภทผ่านActivityResultContract
และมี Hook สำหรับทดสอบโฟลว์เหล่านี้ ดูการรับผลลัพธ์จากกิจกรรมที่อัปเดตแล้ว
ContextAware
: ตอนนี้ComponentActivity
ได้ติดตั้งใช้งานContextAware
แล้ว ซึ่งช่วยให้คุณเพิ่มอินสแตนซ์OnContextAvailableListener
อย่างน้อย 1 รายการที่จะได้รับการเรียกกลับก่อนActivity.onCreate()
ฐาน- ส่วนขยาย Kotlin ที่ระงับ
withContextAvailable()
ช่วยให้คุณเรียกใช้บล็อกที่ไม่ระงับได้เมื่อ Context พร้อมใช้งานและแสดงผลลัพธ์ - API นี้ใช้โดย
FragmentActivity
ใน Fragment 1.3.0 เพื่อคืนค่าสถานะของFragmentManager
โดย Listener ที่เพิ่มลงในคลาสย่อยของFragmentActivity
จะทำงานหลังจาก Listener นั้น - API นี้ใช้โดย
AppCompatActivity
ใน AppCompat 1.3.0-alpha02 ขึ้นไป โดย Listener ที่เพิ่มลงในคลาสย่อยของAppCompatActivity
จะทำงานหลังจาก Listener นั้น
- ส่วนขยาย Kotlin ที่ระงับ
ViewTree
Support:ComponentActivity
ตอนนี้รองรับ APIViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
และViewTreeSavedStateRegistryOwner
ที่เพิ่มเข้ามาใน Lifecycle2.3.0
และ SavedState1.1.0
แล้ว เพื่อให้แสดงผล Activity เป็นLifecycleOwner
,ViewModelStoreOwner
และSavedStateRegistryOwner
สำหรับ View ใดๆ ที่เพิ่มลงใน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 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ 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
ของLifecycleOwner
นั้นถึง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()
ช่วยให้คุณเรียกใช้บล็อกที่ไม่ระงับได้เมื่อ Context พร้อมใช้งานและแสดงผลลัพธ์ (I8290c) - API นี้ใช้โดย
FragmentActivity
ใน Fragment 1.3.0-alpha08 เพื่อคืนค่าสถานะของFragmentManager
โดย Listener ที่เพิ่มลงในคลาสย่อยของFragmentActivity
จะทำงานหลังจาก Listener นั้น (I513da) - API นี้ใช้โดย
AppCompatActivity
ใน AppCompat 1.3.0-alpha02 โดย Listener ที่เพิ่มลงในคลาสย่อยของAppCompatActivity
จะทำงานหลังจาก Listener นั้น (I513da)
- ส่วนขยาย Kotlin ที่ระงับ
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาเกี่ยวกับ
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 ใหม่ที่ยืนยันว่าคุณใช้ Fragment1.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
ที่ใช้ลงทะเบียน Launcher ได้แล้ว (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 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับ
ViewTreeViewModelStoreOwner
จาก Lifecycle2.3.0-alpha03
และViewTreeSavedStateRegistryOwner
จาก SavedState1.1.0-alpha01
เมื่อใช้View
ภายในComponentActivity
(aosp/1297993, aosp/1300264)
การเปลี่ยนแปลง 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
ที่นี่และใน Fragment1.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) - ตอนนี้ 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
และมี Hook สำหรับทดสอบโฟลว์เหล่านี้ ดูการรับผลลัพธ์จากกิจกรรมที่อัปเดตแล้ว (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 ที่เพิ่มใน Lifecycle2.3.0-alpha01
เพื่อให้แสดงผล Activity เป็นLifecycleOwner
สำหรับ View ใดๆ ที่เพิ่มลงใน Activity โดยตรง (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
- การผสานรวม Lifecycle ViewModel SavedState: ตอนนี้
SavedStateViewModelFactory
เป็นโรงงานเริ่มต้นที่ใช้เมื่อใช้by viewModels()
, ตัวสร้างViewModelProvider
หรือViewModelProviders.of()
กับ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 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงการขึ้นต่อกัน
- ตอนนี้กิจกรรมขึ้นอยู่กับ Lifecycle
2.2.0-rc03
และ Lifecycle ViewModel SavedState1.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 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงการขึ้นต่อกัน
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจรลูกค้า
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 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงการขึ้นต่อกัน
- ตอนนี้กิจกรรมขึ้นอยู่กับ 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 ที่เสถียรแล้ว
แก้ไขข้อบกพร่อง
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
2.2.0-alpha04
เวอร์ชัน 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
ต้องใช้ Lifecycle2.2.0-alpha02
(aosp/1007817) activity-ktx
ได้เพิ่มทรัพยากร Dependency ใน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
ใน Fragment1.1.0
และAppCompatActivity
ใน AppCompat1.1.0
- activity-ktx: โมดูล
activity-ktx
มีส่วนขยายพร็อพเพอร์ตี้ Kotlinby viewModels
สำหรับการเข้าถึง ViewModel ระบบจะรวมโมดูลนี้โดยอัตโนมัติเมื่อคุณรวมfragment-ktx
จาก Fragment1.1.0
- OnBackPressedDispatcher: ตอนนี้คุณสามารถลงทะเบียน
OnBackPressedCallback
จากLifecycleOwner
ใดก็ได้ (เช่น Fragment) เพื่อสกัดกั้นเหตุการณ์ปุ่มย้อนกลับของระบบ ซึ่งเป็นทางเลือกแทนการเขียนทับonBackPressed()
เพิ่ม Lambda ที่มีเวอร์ชันตัวรับaddCallback
ลงในactivity-ktx
แล้ว ดูรายละเอียดเพิ่มเติมได้ที่จัดทำเอกสารประกอบการนำทางย้อนกลับที่กำหนดเอง - การเลิกใช้งาน onRetainCustomNonConfigurationInstance: เราได้เลิกใช้งาน API
onRetainCustomNonConfigurationInstance()
และ APIgetLastCustomNonConfigurationInstance()
ที่เกี่ยวข้องแล้ว เราขอแนะนำอย่างยิ่งให้ใช้ ViewModel เพื่อจัดเก็บสถานะที่ไม่ใช่การกำหนดค่า เนื่องจากมีโซลูชันที่ประกอบได้ซึ่งเหมาะสำหรับViewModelStoreOwner
ทุกรายการ ซึ่งทำให้การเป็นเจ้าของออบเจ็กต์ที่เก็บไว้ชัดเจน และมีแฮนเดิลonCleared()
สำหรับล้างทรัพยากรเมื่อมีการทำลายกิจกรรมในที่สุด
เวอร์ชัน 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/953431onBackPressed()
สำหรับ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) - เราได้เลิกใช้งาน
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
คำอธิบายประกอบคลาสsetContentView()
ที่ช่วยให้คุณระบุได้ว่าควรขยายไฟล์ 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
สำหรับจัดเก็บออบเจ็กต์ที่ต้องคงอยู่เมื่อมีการเปลี่ยนแปลงการกำหนดค่า