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

การดำเนินการและ Deep Link

เพิ่มปุ่มและเปิดหน้าจอที่ถูกต้อง

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

การดำเนินการและลิงก์เชิงลึก

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

PendingIntent คืออะไร

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

การสร้าง Content PendingIntent

สร้าง Intent สำหรับหน้าจอที่จะเปิด ห่อหุ้มไว้ใน PendingIntent แล้วแนบด้วย setContentIntent เพื่อให้การแตะเปิดหน้าจอนั้น

val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
    context, 0, intent,
    PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)

แฟล็กความสามารถในการเปลี่ยนแปลง

ตั้งแต่ Android 12 เป็นต้นมา PendingIntent ต้องระบุ FLAG_IMMUTABLE หรือ FLAG_MUTABLE ควรเลือกใช้ FLAG_IMMUTABLE เว้นแต่ระบบจำเป็นต้องเติมข้อมูลให้ เช่น การตอบกลับบางประเภท

การเพิ่มปุ่มการดำเนินการ

ใช้ addAction พร้อมไอคอน ป้ายกำกับ และ PendingIntent เพื่อเพิ่มปุ่มที่แตะได้ในการแจ้งเตือน เช่น "ตอบกลับ" หรือ "ทำเครื่องหมายว่าอ่านแล้ว"

builder.addAction(
    R.drawable.ic_reply,
    "Reply",
    replyPendingIntent
)

การดำเนินการเรียกใช้คอมโพเนนต์

PendingIntent ของการดำเนินการสามารถกำหนดเป้าหมายเป็นกิจกรรม บริการ หรือ BroadcastReceiver ได้ ปุ่ม "ทำเครื่องหมายว่าอ่านแล้ว" มักกำหนดเป้าหมายเป็นตัวรับ เพื่อให้ทำงานได้โดยไม่ต้องเปิดหน้าจอใด

val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
    context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)

การใช้ลิงก์เชิงลึกไปยังหน้าจอ

ลิงก์เชิงลึก จะเปิดปลายทางที่เฉพาะเจาะจงภายในแอป ไม่ใช่เพียงหน้าจอหลัก ด้วย Navigation Compose คุณสามารถสร้าง PendingIntent ที่นำไปยังเส้นทางที่ระบุไว้อย่างชัดเจนได้

การสร้าง Deep Link PendingIntent

คอมโพเนนต์ Navigation มี NavDeepLinkBuilder (หรือ Intent ของลิงก์เชิงลึกที่มี URI) สำหรับสร้าง PendingIntent ที่กำหนดเป้าหมายเป็นปลายทางและอาร์กิวเมนต์

val deepLinkPending = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.chatScreen)
    .setArguments(bundleOf("chatId" to "42"))
    .createPendingIntent()

ลิงก์เชิงลึกที่อ้างอิง URI

คุณยังสามารถลงทะเบียนรูปแบบ URI ในกราฟการนำทาง แล้วสร้าง Intent ด้วย Uri นั้นได้ เมื่อแตะการแจ้งเตือน ระบบจะนำทางตรงไปยังหน้าจอที่ตรงกัน

val intent = Intent(
    Intent.ACTION_VIEW,
    "myapp://chat/42".toUri(),
    context, MainActivity::class.java
)

การคงสแต็กย้อนกลับไว้

สำหรับลิงก์เชิงลึก ตรวจสอบให้แน่ใจว่าสแต็กย้อนกลับมีลำดับที่เหมาะสม เพื่อให้การกด Back กลับไปยังหน้าจอแม่แทนการออกจากแอป TaskStackBuilder หรือตัวสร้างลิงก์เชิงลึกของระบบนำทางจะจัดการเรื่องนี้ให้

รหัสคำขอที่ไม่ซ้ำกัน

หากคุณสร้าง PendingIntents หลายรายการที่แตกต่างกัน ให้รหัสคำขอแต่ละรายการแตกต่างกันด้วย (อาร์กิวเมนต์ตัวที่สอง) Intent ที่เหมือนกันและใช้รหัสเดียวกันจะถูกถือว่าเป็น PendingIntent เดียวกัน

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

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

สรุปทบทวน

คุณได้เพิ่มการโต้ตอบแล้ว:

  • PendingIntent ทำให้ระบบดำเนินการแทนคุณได้ ควรใช้ FLAG_IMMUTABLE
  • setContentIntent กำหนดการทำงานเมื่อแตะ
  • addAction เพิ่มปุ่มที่กำหนดเป้าหมายเป็นกิจกรรม บริการ หรือตัวรับ
  • ลิงก์เชิงลึกเปิดหน้าจอที่ระบุได้โดยคงสแต็กย้อนกลับไว้

ถัดไป: สิทธิ์ขณะทำงานสำหรับการแจ้งเตือน

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

บทเรียน “การดำเนินการและ Deep Link” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การดำเนินการและ Deep Link”

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

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

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

บทเรียน “การดำเนินการและ Deep Link” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ช่องการแจ้งเตือน
  2. การสร้างการแจ้งเตือน
  3. การดำเนินการและ Deep Link
  4. สิทธิ์การแจ้งเตือนขณะทำงาน
← กลับไปที่ Android Academy