0Pricing
Android Academy · บทเรียน

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

เรียนรู้ว่า Activity คืออะไร ทำความเข้าใจฟังก์ชันเรียกกลับของวงจรชีวิต Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) และใช้ ViewBinding

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

กิจกรรมคืออะไร

กิจกรรมคือหน้าจอหนึ่งหน้าจอในแอป Android ของคุณ

  • ทุกหน้าจอ (เข้าสู่ระบบ หน้าหลัก การตั้งค่า) ล้วนเป็นกิจกรรม
  • กิจกรรมจัดการเค้าโครง (XML) และการโต้ตอบของผู้ใช้
  • ประกาศไว้ใน AndroidManifest.xml

ลองนึกภาพว่ากิจกรรมเป็นสิ่งที่เทียบเท่ากับหน้าเว็บใน Android — แต่ละหน้าคือกิจกรรมหนึ่งรายการ

วงจรชีวิตของกิจกรรม

กิจกรรมจะผ่านสถานะวงจรชีวิตหลายขั้นขณะที่ผู้ใช้นำทางภายในแอป:

  • สร้างแล้ว → เริ่มทำงานแล้ว → กลับมาทำงานแล้ว (มองเห็นและใช้งานอยู่)
  • หยุดชั่วคราว (ถูกบดบังบางส่วน)
  • หยุดทำงาน (ถูกบดบังทั้งหมด)
  • ถูกทำลาย (กิจกรรมสิ้นสุดลง)

คุณเขียนทับเมธอดวงจรชีวิตเพื่อโต้ตอบกับการเปลี่ยนผ่านเหล่านี้

การเรียกกลับของวงจรชีวิต

การเรียกกลับหลักทั้งหกรายการของวงจรชีวิต:

  • onCreate() — กิจกรรมกำลังถูกสร้าง ให้ตั้งค่าเค้าโครงที่นี่
  • onStart() — กิจกรรมเริ่มมองเห็นได้
  • onResume() — กิจกรรมอยู่เบื้องหน้า ผู้ใช้โต้ตอบได้
  • onPause() — ผู้ใช้กำลังออกจากหน้านี้ ให้บันทึกข้อมูลชั่วคราว
  • onStop() — กิจกรรมไม่ปรากฏให้เห็นอีกต่อไป
  • onDestroy() — กิจกรรมกำลังถูกทำลาย

ตัวอย่าง MainActivity

กิจกรรมขั้นต่ำที่มีการบันทึกข้อมูลวงจรชีวิต:

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    private val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d(TAG, "onCreate")
    }

    override fun onResume() {
        super.onResume()
        Log.d(TAG, "onResume — user is here")
    }

    override fun onPause() {
        super.onPause()
        Log.d(TAG, "onPause — saving state")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d(TAG, "onDestroy")
    }
}

เหตุใดวงจรชีวิตจึงสำคัญ

ข้อผิดพลาดที่พบบ่อยจากการละเลยวงจรชีวิต:

  • เล่นวิดีโอใน onResume แต่ลืมหยุดชั่วคราวใน onPause — ทำให้แบตเตอรี่หมดเร็ว
  • ลงทะเบียนตัวรับฟังเซ็นเซอร์ใน onCreate แต่ไม่ยกเลิกการลงทะเบียนใน onDestroy — ทำให้เกิดหน่วยความจำรั่ว
  • ไม่บันทึกข้อมูลแบบฟอร์มใน onPause — ผู้ใช้สูญเสียความคืบหน้าเมื่อมีสายโทรเข้า

การบันทึกสถานะ: onSaveInstanceState

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

บันทึกสถานะชั่วคราวใน onSaveInstanceState(bundle) และกู้คืนใน onCreate(savedInstanceState)

การบันทึกและกู้คืนสถานะ

คงข้อมูลไว้แม้มีการเปลี่ยนแปลงการกำหนดค่า:

class CounterActivity : AppCompatActivity() {

    private var count = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_counter)

        // Restore saved state after rotation
        count = savedInstanceState?.getInt("count") ?: 0
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("count", count)
    }
}

สแต็กย้อนกลับ

Android จัดการสแต็กย้อนกลับของกิจกรรม:

  • เมื่อเปิดกิจกรรมใหม่ ระบบจะนำกิจกรรมนั้นไปวางบนสแต็ก
  • เมื่อกดปุ่มย้อนกลับ ระบบจะนำกิจกรรมด้านบนออกจากสแต็กและทำลายกิจกรรมนั้น
  • กิจกรรมก่อนหน้าจะกลับมาทำงานโดยอัตโนมัติ

ด้วยเหตุนี้ คุณจึงไม่ควรเรียกใช้ finish() ด้วยตนเอง เว้นแต่ต้องการนำหน้าจอปัจจุบันออกจากสแต็กย้อนกลับโดยเฉพาะ

การเปลี่ยนแปลงการกำหนดค่า

การเปลี่ยนแปลงการกำหนดค่าใด ๆ (การหมุนหน้าจอ การเปลี่ยนภาษา การเชื่อมต่อแป้นพิมพ์) จะทำให้กิจกรรมถูกสร้างขึ้นใหม่โดยค่าเริ่มต้น

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

ตรวจสอบความเข้าใจ

คุณควรตั้งค่าเค้าโครง (เรียกใช้ setContentView) ในเมธอดวงจรชีวิตใด

สรุป: กิจกรรมและวงจรชีวิต

ตอนนี้คุณเข้าใจกิจกรรมของ Android แล้ว:

  • กิจกรรม = หน้าจอหนึ่งหน้าจอในแอปของคุณ
  • วงจรชีวิต: onCreate → onStart → onResume → onPause → onStop → onDestroy
  • บันทึกสถานะชั่วคราวใน onSaveInstanceState
  • การหมุนหน้าจอจะทำลายและสร้างกิจกรรมขึ้นใหม่
  • Android จัดการสแต็กย้อนกลับโดยอัตโนมัติ

ถัดไป: ออกแบบหน้าจอด้วยเค้าโครงและ View

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

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

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

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

เรียนรู้ว่า Activity คืออะไร ทำความเข้าใจฟังก์ชันเรียกกลับของวงจรชีวิต Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) และใช้ ViewBinding คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

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

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

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

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

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

  1. โครงสร้างโครงการและไฟล์ Manifest
  2. Activity และวงจรชีวิต
  3. เค้าโครงและมุมมอง
  4. การจัดการข้อมูลที่ผู้ใช้ป้อน
  5. อินเทนต์และการนำทาง
  6. Fragment
  7. สิทธิ์และคำขอขณะทำงาน
← กลับไปที่ Android Academy