Android Academy · บทเรียน

วงจรชีวิตของ Android

ทำความเข้าใจวงจรชีวิตของกิจกรรมและการประกอบ

บทเรียน 3 จาก 413 ขั้นตอน

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

วงจรชีวิตคืออะไร

กิจกรรม Android ทุกตัวจะเปลี่ยนผ่านชุดสถานะต่าง ๆ ขณะที่ผู้ใช้เปิด ออกจาก และกลับมายังแอปของคุณ สิ่งนี้เรียกว่าวงจรชีวิต

การทำความเข้าใจเรื่องนี้ช่วยให้คุณเริ่มและหยุดการทำงานได้ในเวลาที่เหมาะสม

การเรียกกลับหลักของกิจกรรม

การเรียกกลับของวงจรชีวิตกิจกรรมแบบดั้งเดิมจะทำงานตามลำดับดังนี้:

  • onCreate — กิจกรรมกำลังถูกสร้าง
  • onStart — กำลังแสดงให้เห็น
  • onResume — อยู่เบื้องหน้าและโต้ตอบได้
  • onPause / onStop / onDestroy — กำลังออกจากกิจกรรม

ลำดับการทำงานทั่วไป

การเปิดแอป: onCreate → onStart → onResume

การกดปุ่มหน้าหลัก: onPause → onStop

การกลับมา: onRestart → onStart → onResume

สถานะวงจรชีวิตเทียบกับเหตุการณ์

ไลบรารี วงจรชีวิต ของ Jetpack จำลองสิ่งนี้ด้วยสถานะ (CREATED, STARTED, RESUMED, DESTROYED) และเหตุการณ์ (ON_CREATE, ON_START, ...)

คอมโพเนนต์สามารถสังเกตสิ่งเหล่านี้แทนการเขียนทับการเรียกกลับดิบได้

เจ้าของวงจรชีวิต

กิจกรรม Fragment และโฮสต์ของ Compose เป็นเจ้าของวงจรชีวิต โดยเปิดเผยออบเจกต์ Lifecycle ที่คอมโพเนนต์อื่นสามารถสังเกตได้

val owner: LifecycleOwner = this // an Activity
val lifecycle = owner.lifecycle

เหตุใดเรื่องนี้จึงสำคัญต่อทรัพยากร

ทรัพยากรหลายอย่างควรทำงานเฉพาะขณะที่หน้าจอแสดงอยู่เท่านั้น:

  • การอัปเดตตำแหน่ง
  • ตัวฟังเซนเซอร์
  • เซสชันกล้อง

เริ่มการทำงานใน onStart/onResume และหยุดการทำงานใน onStop/onPause เพื่อประหยัดแบตเตอรี่และป้องกันการรั่วไหลของทรัพยากร

วงจรชีวิตใน Jetpack Compose

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

ตอบสนองต่อคอมโพสิชันด้วย DisposableEffect

DisposableEffect จะตั้งค่าการทำงานเมื่อคอมโพสิเบิลเข้าสู่คอมโพสิชัน และล้างการทำงานเมื่อคอมโพสิเบิลออกจากคอมโพสิชัน

@Composable
fun Screen() {
    DisposableEffect(Unit) {
        // setup, e.g. register listener
        onDispose {
            // cleanup when leaving composition
        }
    }
}

การสังเกตวงจรชีวิตจริงใน Compose

หากต้องการตอบสนองต่อเหตุการณ์วงจรชีวิตจริงของกิจกรรมจากคอมโพสิเบิล ให้สังเกต LifecycleOwner ด้วย DefaultLifecycleObserver

@Composable
fun OnResume(onResume: () -> Unit) {
    val owner = LocalLifecycleOwner.current
    DisposableEffect(owner) {
        val obs = object : DefaultLifecycleObserver {
            override fun onResume(o: LifecycleOwner) = onResume()
        }
        owner.lifecycle.addObserver(obs)
        onDispose { owner.lifecycle.removeObserver(obs) }
    }
}

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

โปรดจำไว้ว่า ViewModel มีอายุยืนกว่าสถานะวงจรชีวิตแต่ละสถานะ เช่น onStart/onStop โดยจะถูกล้างเฉพาะเมื่อเจ้าของหายไปอย่างถาวรเท่านั้น นี่เป็นเหตุผลโดยตรงที่ทำให้การเก็บสถานะไว้ที่นี่ปลอดภัย

นำทุกอย่างมารวมกัน

หน้าจอที่มีโครงสร้างดีจะ:

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับวงจรชีวิตของคุณ

สรุปทบทวน

สิ่งที่คุณได้เรียนรู้:

  • กิจกรรมจะเปลี่ยนผ่านสถานะ CREATED, STARTED, RESUMED, DESTROYED
  • Compose มีวงจรชีวิตของคอมโพสิชันเป็นของตนเอง ซึ่งจัดการผ่าน DisposableEffect
  • สังเกต LifecycleOwner เพื่อตอบสนองต่อเหตุการณ์วงจรชีวิตจริง
  • ViewModel มีอายุยืนกว่าสถานะเหล่านี้โดยเจตนา
เริ่มต้นได้ฟรี

เรียนรู้ Kotlin ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
36
บทเรียน
152

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

บทเรียน “วงจรชีวิตของ Android” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

  1. เหตุใดจึงควรใช้ ViewModel
  2. การเปิดเผยสถานะจาก ViewModel
  3. วงจรชีวิตของ Android
  4. collectAsStateWithLifecycle
← กลับไปที่ Android Academy