Jetpack Compose Academy · บทเรียน

สแตกย้อนกลับและลิงก์ลึก

ควบคุมประวัติและเปิดเส้นทางจาก URL

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

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

กองประวัติย้อนกลับคืออะไร

back stack คือประวัติของหน้าจอที่คุณเคยเข้าชม การเรียก navigate แต่ละครั้งจะเพิ่มรายการใหม่ไว้ด้านบนของกองนี้

การย้อนกลับ

การเรียก popBackStack() จะนำรายการด้านบนออกและแสดงหน้าจอที่อยู่ถัดลงมา การปัดกลับของระบบก็ทำสิ่งเดียวกันโดยอัตโนมัติ

navController.popBackStack()

นำรายการออกจนถึงเส้นทาง

ใช้ popUpTo ขณะนำทางเพื่อนำหน้าจอออกจากกองจนถึงเป้าหมาย เหมาะอย่างยิ่งสำหรับการกลับไปยังรากที่ทราบแน่ชัด

navController.navigate("home") {
    popUpTo("home")
}

หลีกเลี่ยงรายการซ้ำ

ตั้งค่า launchSingleTop เป็น true เพื่อให้การแตะปลายทางเดิมสองครั้งไม่สร้างสำเนาที่เหมือนกันซ้อนกัน

navController.navigate("home") {
    launchSingleTop = true
}

ล้างหน้าจอหลังเข้าสู่ระบบ

หลังเข้าสู่ระบบ ให้นำหน้าจอเข้าสู่ระบบออกด้วย inclusive = true เพื่อไม่ให้การกดย้อนกลับกลับไปยังหน้าจอนั้น

navController.navigate("home") {
    popUpTo("login") { inclusive = true }
}

ทำความรู้จักลิงก์ลึก

deep link จะเปิดหน้าจอเฉพาะโดยตรงจาก URL หรือการแจ้งเตือน โดยข้ามเส้นทางปกติที่ต้องผ่านแอปทีละขั้น

ประกาศลิงก์ลึก

แนบ navDeepLink เข้ากับปลายทางด้วยรูปแบบ URI Compose จะจับคู่ลิงก์ขาเข้ากับรูปแบบนั้น

composable(
    "profile/{userId}",
    deepLinks = listOf(navDeepLink { uriPattern = "app://profile/{userId}" })
) { }

ลิงก์ลึกส่งอาร์กิวเมนต์ได้

ตัวยึดตำแหน่งใน URI ของลิงก์ลึกจะเติมค่าให้อาร์กิวเมนต์ของเส้นทาง การเปิด app://profile/42 จะไปยังหน้าจอโปรไฟล์โดยตั้งค่า userId เป็น 42

ลงทะเบียนตัวกรองเจตนา

สำหรับลิงก์จากภายนอกแอป ให้เพิ่ม intent-filter ที่ตรงกันในไฟล์กำกับ เพื่อให้ Android ส่ง URL ไปยังกิจกรรมของคุณ

ลิงก์ลึกสร้างกองประวัติ

Navigation Compose สามารถสร้าง back stack สำหรับลิงก์ลึกได้ ดังนั้นเมื่อกดย้อนกลับ ระบบจะไล่ไปยังหน้าหลักที่เหมาะสมแทนการออกจากแอป

สังเกตรายการปัจจุบัน

รวบรวม currentBackStackEntryAsState เพื่อโต้ตอบกับตำแหน่งที่ผู้ใช้อยู่ เหมาะสำหรับเน้นแท็บที่เลือก

val entry by navController.currentBackStackEntryAsState()
val route = entry?.destination?.route

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

จะหยุดไม่ให้การย้อนกลับไปยังหน้าจอเข้าสู่ระบบได้อย่างไร

สรุปทบทวน

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

เริ่มต้นได้ฟรี

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

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

คอร์ส
30
บทเรียน
120

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

บทเรียน “สแตกย้อนกลับและลิงก์ลึก” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “สแตกย้อนกลับและลิงก์ลึก”

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

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

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

บทเรียน “สแตกย้อนกลับและลิงก์ลึก” ใช้เวลานานแค่ไหน

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

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

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

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

  1. NavController และ NavHost
  2. ปลายทางและเส้นทาง Composable
  3. ส่งอาร์กิวเมนต์ระหว่างหน้าจอ
  4. สแตกย้อนกลับและลิงก์ลึก
← กลับไปที่ Jetpack Compose Academy