กิจกรรม
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
20 พฤษภาคม 2025 | 1.10.1 | 1.11.0-rc01 | - | 1.12.0-alpha01 |
การประกาศทรัพยากร 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-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
ที่ได้จากฟังก์ชันhandleOnBackStarted
และhandleOnBackProgressed
ของOnBackPressedCallback
การอัปเดตทรัพยากร Dependency
- ตอนนี้กิจกรรมจะคอมไพล์ด้วย 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
ที่ทริกเกอร์เครื่องมือเลือกรูปภาพจะไม่มอบสิทธิ์ให้บริการ Google Play โดยตรงอีกต่อไปหากเครื่องมือเลือกรูปภาพของระบบไม่พร้อมใช้งาน แต่จะใช้การดำเนินการ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
นอกจากนี้ยังมีกฎใหม่ใน 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)
- จากกิจกรรม
1.9.2
: แก้ไขปัญหาที่ Activity ComposePredictiveBackHandler
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 มีการคอมมิตเหล่านี้
การอัปเดตทรัพยากรที่เกี่ยวข้อง
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ 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 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยของประสิทธิภาพการเริ่มต้นกิจกรรมที่พบใน กิจกรรม
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
- ตอนนี้ 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 แล้ว วิธีนี้ช่วยให้มั่นใจได้ว่าระบบจะส่งค่า 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 ที่ใช้เครื่องมือเลือกรูปภาพสำรองของระบบเพื่อรองรับทั้ง 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
กลายเป็นพร็อพเพอร์ตี้ Kotlin นามธรรม การเปลี่ยนแปลงนี้เข้ากันได้กับไบนารี แต่จะไม่เข้ากันได้กับซอร์สโค้ดหากการใช้งานActivityResultLauncher
เขียนด้วย Kotlin (Id4615)- ตอนนี้
PickVisualMediaRequest
มี API ระดับต่ำสุด 19 เช่นเดียวกับสัญญาผลลัพธ์กิจกรรมPickVisualMedia
(Id6e21)
อัปเดตทรัพยากร Dependency
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ 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
ของสัญญากิจกรรมเครื่องมือเลือกรูปภาพให้ส่งคีย์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
ใหม่ขณะที่จัดการท่าทางสัมผัสเพื่อย้อนกลับ (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()
callback และ 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>
ที่ไม่บังคับ ซึ่งช่วยให้เจ้าของตัวจัดเตรียมได้รับ 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)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ Framgnet ทำให้ MenuHost เป็นโมฆะอย่างไม่ถูกต้องและทําให้เมนูอื่นๆ ในกิจกรรมมีลักษณะการทำงานที่ไม่คาดคิด (I9404e, b/244336571)
การเปลี่ยนแปลงอื่นๆ
- ตอนนี้
ActivityResultRegister
ใช้ KotlinRandom
แทน 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
ที่แนบมากับ 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
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
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()
อนุญาตให้คุณตั้งค่า 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
- ตอนนี้ไลบรารี
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) - ตอนนี้คลาสที่ลบล้างการเรียกคืน
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 ฉบับที่ 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)
การอัปเดตทรัพยากรที่เกี่ยวข้อง
- ตอนนี้ไลบรารี
Activity
จะขึ้นอยู่กับวงจร2.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
ด้วย ซึ่งช่วยให้มุมมองมีวิธีทั่วไปในการเรียกข้อมูลตัวจัดเตรียมที่ถูกต้องไม่ว่าจะอยู่ในComponentActivity
หรือComponentDialog
- อินเทอร์เฟซ Callback - ตอนนี้
ComponentActivity
ใช้ชุดอินเทอร์เฟซ Callback แบบโมดูลที่สามารถใช้แทน Callback ของActivity
อินเทอร์เฟซเหล่านี้ ได้แก่OnNewIntentProvider
,OnConfigurationChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
,OnMultiWindowModeChangedProvider
- การผสานรวม CreationExtras - ตอนนี้
ComponentActivity
สามารถให้บริการViewModelProvider.Factory
แบบไม่มีสถานะผ่านCreationExtras
ของ Lifecycle2.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 มีการคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependencies
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
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 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้
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 ซึ่งเปิดตัวเป็นส่วนหนึ่งของ Lifecycle2.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)
การมีส่วนร่วมจากภายนอก
เวอร์ชัน 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 มีคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependencies
- ตอนนี้กิจกรรมจะขึ้นอยู่กับ 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 ในกิจกรรมและ Compose Wrapper ที่เฉพาะเจาะจงสำหรับการโต้ตอบกับ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
- จาก Activity 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
ที่ยังคงใช้ LambdaonBack
ที่ตั้งไว้ก่อนหน้านี้หลังจากการจัดองค์ประกอบใหม่ (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
เมื่อใช้ 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
และไลบรารีที่ขึ้นอยู่กับ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 ที่ตรวจพบรายการที่ไม่ถูกต้องซึ่งแจ้งให้คุณใช้ F
1.3.0
เมื่อใช้บิลด์สแนปชอต อัลฟ่า เบต้า หรือ RC ของ F เวอร์ชันใหม่ (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
จะทำงานหลังจากโปรแกรมฟังนั้น
- ส่วนขยาย Kotlin ที่ระงับ
ViewTree
การรองรับ: ตอนนี้ComponentActivity
รองรับViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
และViewTreeSavedStateRegistryOwner
API ที่เพิ่มใน Lifecycle2.3.0
และ SavedState1.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)
- ส่วนขยาย Kotlin ที่ระงับ
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาเกี่ยวกับ
ActivityResultFragmentVersionDetector
การตรวจสอบ Lint ที่ทำให้ 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
ที่ใช้ลงทะเบียนตัวเปิด (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
ที่นี่และในส่วนย่อย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 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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงทรัพยากร 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 เวอร์ชันเสถียร
แก้ไขข้อบกพร่อง
- ตอนนี้กิจกรรมจะขึ้นอยู่กับวงจร
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
ขึ้นอยู่กับวงจร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
ใน Fragment1.1.0
และAppCompatActivity
ใน AppCompat1.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
ที่ยอมรับ Lamdba ที่ใช้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
สำหรับจัดเก็บออบเจ็กต์ที่ต้องอยู่รอดจากการเปลี่ยนแปลงการกําหนดค่า