0Pricing
Kotlin Multiplatform Academy · บทเรียน

CoroutineScope และวงจรชีวิต

ผูกงานอะซิงโครนัส shared เข้ากับขอบเขตที่เหมาะสมและยกเลิกงานนั้น

CoroutineScope และวงจรชีวิต เป็นบทเรียน Kotlin Multiplatform Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Multiplatform Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

โครูทีนต้องมีขอบเขต

โครูทีนทุกตัวต้องอยู่ใน CoroutineScope ขอบเขตจะกำหนดว่างานจะทำงานได้นานเพียงใดและควรหยุดเมื่อใด

เหตุใดขอบเขตจึงเท่ากับวงจรชีวิต

ผูกขอบเขตไว้กับหน้าจอหรือเซสชัน เมื่อสิ่งนั้นสิ้นสุดลง ขอบเขตจะยกเลิกโครูทีนของตน เพื่อไม่ให้มีงานทำงานกับ ส่วนติดต่อผู้ใช้ ที่หมดอายุแล้ว

การเปิดใช้งานจะเริ่มงาน

คุณเริ่มโครูทีนด้วยการเรียก เปิดใช้งาน บนขอบเขต โครูทีนจะทำงานตามบล็อกและถูกติดตามในฐานะส่วนหนึ่งของขอบเขตนั้น

scope.launch { refresh() }

สร้างขอบเขตในโค้ดที่ใช้ร่วมกัน

สร้างขอบเขตด้วย งาน และตัวจัดส่งงาน ขอบเขตที่ใช้ร่วมกันนี้สามารถขับเคลื่อนงานแบบอะซิงโครนัสให้กับ ViewModel ที่ทั้งสองแอปใช้งานร่วมกันได้

val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)

SupervisorJob แยกความล้มเหลวออกจากกัน

SupervisorJob จะป้องกันไม่ให้ลูกที่ล้มเหลวหนึ่งตัวไปยกเลิกพี่น้องของมัน คำขอที่ล้มเหลวหนึ่งรายการจึงไม่ทำให้ทั้งหน้าจอหยุดทำงาน

ยกเลิกเพื่อเก็บกวาด

เรียก ยกเลิก เมื่อเจ้าของสิ้นสุดลง โครูทีนที่รอเครือข่ายหรือตัวจับเวลาจะหยุดทันที เพื่อป้องกันการรั่วไหลและการอัปเดตที่ไม่พึงประสงค์

fun onCleared() { scope.cancel() }

การยกเลิกเป็นแบบร่วมมือกัน

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

Android มีขอบเขตให้คุณหนึ่งตัว

บน Android ViewModel มี viewModelScope ให้แล้ว ขอบเขตนี้จะถูกยกเลิกโดยอัตโนมัติเมื่อ ViewModel ถูกล้าง ดังนั้นคุณจึงนำมาใช้ซ้ำได้

viewModelScope.launch { load() }

iOS ต้องยกเลิกด้วยตนเอง

บน iOS ไม่มีขอบเขตอัตโนมัติ คุณต้องเก็บขอบเขตที่ใช้ร่วมกันไว้และเรียก ยกเลิก จาก Swift เมื่อมุมมองหายไป 📱

อย่าใช้ GlobalScope

หลีกเลี่ยง GlobalScope เพราะมันทำงานตลอดไปและไม่สนใจวงจรชีวิต โครูทีนของมันอาจรั่วไหลและอัปเดตหน้าจอที่ไม่มีอยู่แล้ว

กำหนดขอบเขตให้เหมาะสม แล้วไม่ต้องกังวล

เลือกขอบเขตที่เหมาะสมเพียงครั้งเดียว แล้วการยกเลิกจะเกิดขึ้นได้โดยแทบไม่ต้องทำอะไร ขอบเขตที่คำนึงถึงวงจรชีวิตจะทำให้งานแบบอะซิงโครนัสที่ใช้ร่วมกันปลอดภัยบนทั้งสองแพลตฟอร์ม 🎯

ตรวจสอบอย่างรวดเร็ว

มาทบทวนกันว่าขอบเขตช่วยปกป้องโครูทีนของคุณอย่างไร

สรุปทบทวน

คุณได้เรียนรู้ว่า CoroutineScope ผูกงานแบบอะซิงโครนัสเข้ากับวงจรชีวิต: การเปิดใช้งานจะเริ่มงาน การยกเลิกจะเก็บกวาดงาน และคุณควรหลีกเลี่ยง GlobalScope 🎉

คำถามที่พบบ่อย

บทเรียน “CoroutineScope และวงจรชีวิต” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “CoroutineScope และวงจรชีวิต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Multiplatform Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “CoroutineScope และวงจรชีวิต”

ผูกงานอะซิงโครนัส shared เข้ากับขอบเขตที่เหมาะสมและยกเลิกงานนั้น คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Multiplatform Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Multiplatform Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “CoroutineScope และวงจรชีวิต” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Multiplatform Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Multiplatform Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ฟังก์ชัน suspend ที่ทำงานได้ทุกที่
  2. ดิสแพตเชอร์ข้ามแพลตฟอร์ม
  3. CoroutineScope และวงจรชีวิต
  4. withContext และภาวะทำงานพร้อมกันแบบมีโครงสร้าง
← กลับไปที่ Kotlin Multiplatform Academy