Register now for Android Dev Summit 2019!

ภาพรวมของการแจ้งเตือน

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

หน้านี้แสดงภาพรวมของตำแหน่งที่การแจ้งเตือนปรากฏและฟีเจอร์ที่มีให้ใช้งาน หากต้องการเริ่มสร้างการแจ้งเตือนในตอนนี้ โปรดอ่านสร้างการแจ้งเตือน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบต่างๆ ในการออกแบบและการโต้ตอบ ให้ดูคู่มือการออกแบบการแจ้งเตือน และโปรดดูตัวอย่างการแจ้งเตือนของ Androidด้วยซึ่งจะสาธิตแนวทางปฏิบัติที่ดีที่สุดในการใช้ Notification.Style API ในแอปบนอุปกรณ์เคลื่อนที่และอุปกรณ์ที่สวมใส่ได้

ลักษณะที่ปรากฏในอุปกรณ์

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

แถบสถานะและลิ้นชักการแจ้งเตือน

เมื่อคุณส่งการแจ้งเตือน การแจ้งเตือนจะปรากฏเป็นไอคอนในแถบสถานะก่อน

รูปที่ 1 ไอคอนการแจ้งเตือนปรากฏขึ้นทางด้านซ้ายของแถบสถานะ

ผู้ใช้จะเลื่อนนิ้วลงบนแถบสถานะเพื่อเปิดลิ้นชักการแจ้งเตือนได้เพื่อดูรายละเอียดเพิ่มเติมและดำเนินการต่างๆ จากการแจ้งเตือน

รูปที่ 2 การแจ้งเตือนในลิ้นชักการแจ้งเตือน

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

การแจ้งเตือนจะยังคงปรากฏให้เห็นในลิ้นชักการแจ้งเตือนจนกว่าแอปหรือผู้ใช้จะปิดไป

การแจ้งเตือนล่วงหน้า

เริ่มตั้งแต่ Android 5.0 เป็นต้นไป การแจ้งเตือนอาจปรากฏขึ้นเพียงชั่วครู่ในหน้าต่างแบบลอยซึ่งเรียกว่าการแจ้งเตือนล่วงหน้า ปกติแล้วลักษณะการทำงานนี้ใช้สำหรับการแจ้งเตือนสำคัญที่ผู้ใช้ควรทราบทันที และจะปรากฏขึ้นเฉพาะเมื่ออุปกรณ์ไม่ได้ล็อกอยู่เท่านั้น

รูปที่ 3 การแจ้งเตือนล่วงหน้าปรากฏขึ้นโดยวางซ้อนบนแอปที่ทำงานอยู่เบื้องหน้า

การแจ้งเตือนล่วงหน้าจะปรากฏขึ้นทันทีที่แอปส่งการแจ้งเตือนและจะหายไปหลังจากผ่านไปครู่หนึ่ง แต่จะยังปรากฏให้เห็นในลิ้นชักการแจ้งเตือนตามปกติ

ตัวอย่างเงื่อนไขต่างๆ ที่อาจเรียกให้การแจ้งเตือนล่วงหน้าแสดงขึ้นมีดังนี้

  • กิจกรรมของผู้ใช้อยู่ในโหมดเต็มหน้าจอ (แอปใช้ fullScreenIntent)
  • การแจ้งเตือนมีลำดับความสำคัญสูงและใช้เสียงเรียกเข้าหรือการสั่นในอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า
  • ช่องทางการแจ้งเตือนมีความสำคัญสูงในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป

หน้าจอล็อก

การแจ้งเตือนอาจปรากฏในหน้าจอล็อกได้สำหรับ Android 5.0 เป็นต้นไป

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

ผู้ใช้อาจใช้การตั้งค่าระบบเพื่อเลือกระดับรายละเอียดที่มองเห็นในการแจ้งเตือนในหน้าจอล็อก รวมถึงตัวเลือกเพื่อปิดการแจ้งเตือนในหน้าจอล็อกทั้งหมด และใน Android 8.0 เป็นต้นไป ผู้ใช้จะเลือกปิดหรือเปิดใช้การแจ้งเตือนในหน้าจอล็อกสำหรับช่องทางการแจ้งเตือนแต่ละช่องทางได้

รูปที่ 4 การแจ้งเตือนในหน้าจอล็อกที่มีการซ่อนเนื้อหาที่ละเอียดอ่อน

ดูข้อมูลเพิ่มเติมได้ในวิธีกำหนดระดับการเข้าถึงหน้าจอล็อก

ป้ายบนไอคอนของแอป

ใน Launcher ที่ใช้งานได้ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป ไอคอนแอปจะแสดงการแจ้งเตือนใหม่ๆ ด้วย "ป้าย" ที่เป็นสี (หรือที่เรียกว่า "เครื่องหมายจุดแสดงการแจ้งเตือน") บนไอคอนตัวเปิดแอปสำหรับแอปนั้นๆ

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

รูปที่ 5 ป้ายแสดงการแจ้งเตือนและเมนูแบบกดค้าง

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

อุปกรณ์ Wear OS

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

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

รูปที่ 6 การแจ้งเตือนปรากฏขึ้นโดยอัตโนมัติในอุปกรณ์ Wear OS ที่จับคู่ไว้

ส่วนต่างๆ ของการแจ้งเตือน

ดีไซน์ของการแจ้งเตือนกำหนดโดยเทมเพลตของระบบ แอปของคุณเพียงแต่กำหนดเนื้อหาในแต่ละส่วนของเทมเพลตเท่านั้น รายละเอียดบางอย่างของการแจ้งเตือนจะปรากฏเฉพาะในมุมมองแบบขยาย

รูปที่ 7 การแจ้งเตือนที่มีรายละเอียดเบื้องต้น

ส่วนต่างๆ ของการแจ้งเตือนที่ใช้กันโดยทั่วไปแสดงอยู่ในรูปที่ 7 ดังนี้

  1. ไอคอนขนาดเล็ก: จำเป็นต้องมีและตั้งค่าด้วย setSmallIcon()
  2. ชื่อแอป: กำหนดโดยระบบ
  3. การประทับเวลา: กำหนดโดยระบบ แต่คุณลบล้างได้ด้วย setWhen() หรือซ่อนได้ด้วย setShowWhen(false)
  4. ไอคอนขนาดใหญ่: มีหรือไม่ก็ได้ (โดยปกติจะใช้สำหรับรูปภาพผู้ติดต่อเท่านั้น อย่าใช้กับไอคอนแอป) และตั้งค่าด้วย setLargeIcon()
  5. ชื่อ: มีหรือไม่ก็ได้และตั้งค่าด้วย setContentTitle()
  6. ข้อความ: มีหรือไม่ก็ได้และตั้งค่าด้วย setContentText()

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการแจ้งเตือนด้วยฟีเจอร์เหล่านี้และเรื่องอื่นๆ โปรดอ่านสร้างการแจ้งเตือน

การทำงานสำหรับการแจ้งเตือน

แม้ว่าจะไม่จำเป็น แต่การแจ้งเตือนทุกครั้งควรเปิดกิจกรรมที่เหมาะสมของแอปเมื่อมีการแตะ นอกเหนือจากการทำงานในการแจ้งเตือนที่เป็นค่าเริ่มต้นนี้ คุณจะเพิ่มปุ่มการทำงานสำหรับทำงานที่เกี่ยวข้องกับแอปจากการแจ้งเตือนได้ (โดยมากไม่ต้องเปิดกิจกรรมขึ้นมา) ดังที่แสดงในรูปที่ 9

รูปที่ 9 การแจ้งเตือนที่มีปุ่มการทำงาน

เริ่มตั้งแต่ Android 7.0 (API ระดับ 24) เป็นต้นไป คุณจะเพิ่มการทำงานเพื่อตอบกลับข้อความหรือป้อนข้อความอื่นๆ จากการแจ้งเตือนโดยตรงได้อีกด้วย

ดูคำอธิบายเพิ่มเติมเกี่ยวกับการเพิ่มปุ่มการทำงานได้ในสร้างการแจ้งเตือน

การแจ้งเตือนที่ขยายได้

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

รูปที่ 8 การแจ้งเตือนที่ขยายได้สำหรับข้อความยาว

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

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

การอัปเดตและกลุ่มการแจ้งเตือน

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

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

ผู้ใช้จะค่อยๆ ขยายกลุ่มการแจ้งเตือนและการแจ้งเตือนแต่ละรายการในกลุ่มนั้นๆ เพื่อดูรายละเอียดเพิ่มเติมได้

รูปที่ 10 กลุ่มการแจ้งเตือนที่ยุบและขยาย

ดูวิธีเพิ่มการแจ้งเตือนไปยังกลุ่มได้ในสร้างกลุ่มการแจ้งเตือน

ช่องทางการแจ้งเตือน

เริ่มตั้งแต่ Android 8.0 (API ระดับ 26) เป็นต้นไป การแจ้งเตือนทั้งหมดจะต้องมีการกำหนดให้แก่ช่องทาง มิเช่นนั้นจะไม่ปรากฏขึ้น ผู้ใช้ปิดใช้ช่องทางการแจ้งเตือนหนึ่งๆ สำหรับแอปได้ (แทนที่จะปิดใช้การแจ้งเตือนทั้งหมด) ด้วยการแบ่งหมวดหมู่การแจ้งเตือนออกเป็นช่องทางต่างๆ และควบคุมตัวเลือกภาพและเสียงสำหรับแต่ละช่องทางได้ (รูปที่ 11) โดยทั้งหมดนี้ทำได้จากการตั้งค่าของระบบ Android นอกจากนี้ผู้ใช้ยังกดการแจ้งเตือนค้างไว้เพื่อเปลี่ยนลักษณะการทำงานของช่องทางที่เกี่ยวข้องได้อีกด้วย

สำหรับอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า ผู้ใช้จัดการการแจ้งเตือนได้ทีละแอปเท่านั้น (จะทำได้เฉพาะเมื่อแต่ละแอปมีช่องทางเดียวใน Android 7.1 และต่ำกว่าเท่านั้น)

รูปที่ 11 การตั้งค่าการแจ้งเตือนสำหรับแอปนาฬิกาและช่องทางหนึ่งของแอปนั้น

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

ช่องทางนี้ยังเป็นที่ที่คุณระบุระดับความสำคัญของการแจ้งเตือนใน Android 8.0 ขึ้นไปด้วย ดังนั้นการแจ้งเตือนทั้งหมดที่โพสต์ในช่องทางการแจ้งเตือนเดียวกันจะมีลักษณะการทำงานเหมือนกัน

ดูข้อมูลเพิ่มเติมได้ในสร้างและจัดการช่องทางการแจ้งเตือน

ความสำคัญของการแจ้งเตือน

Android ใช้ความสำคัญของการแจ้งเตือนเพื่อกำหนดว่าการแจ้งเตือนควรรบกวนผู้ใช้ (ทั้งด้วยภาพและเสียง) มากน้อยเพียงใด ยิ่งการแจ้งเตือนมีความสำคัญมากเท่าใด การแจ้งเตือนก็จะยิ่งรบกวนผู้ใช้มากขึ้นเท่านั้น

ใน Android 8.0 (API ระดับ 26) ขึ้นไป ความสำคัญของการแจ้งเตือนจะกำหนดโดย importance ของช่องทางที่มีการโพสต์การแจ้งเตือนนั้น ผู้ใช้เปลี่ยนความสำคัญของช่องทางการแจ้งเตือนได้ในการตั้งค่าระบบ (รูปที่ 12) สำหรับ Android 7.1 (API ระดับ 25) และต่ำกว่า ความสำคัญของการแจ้งเตือนแต่ละรายการจะกำหนดโดย priority ของการแจ้งเตือน

รูปที่ 12 ผู้ใช้เปลี่ยนความสำคัญของแต่ละช่องทางใน Android 8.0 ขึ้นไปได้

ระดับความสำคัญที่เป็นไปได้มีดังต่อไปนี้

  • ด่วน: มีเสียงเตือนและแสดงเป็นการแจ้งเตือนล่วงหน้า
  • สูง: มีเสียงเตือน
  • กลาง: ไม่มีเสียงเตือน
  • ต่ำ: ไม่มีเสียงเตือนและไม่ปรากฏในแถบสถานะ

การแจ้งเตือนทั้งหมดไม่ว่าจะมีความสำคัญระดับใดจะปรากฏในตำแหน่ง UI ของระบบที่ไม่ก่อให้เกิดการรบกวน เช่น ในลิ้นชักการแจ้งเตือนและป้ายบนไอคอน Launcher (แต่คุณจะปรับเปลี่ยนลักษณะที่ปรากฏของป้ายแสดงการแจ้งเตือนได้)

ดูข้อมูลเพิ่มเติมได้ในวิธีกำหนดความสำคัญ

โหมดห้ามรบกวน

ผู้ใช้เปิดใช้โหมดห้ามรบกวนได้ใน Android 5.0 (API ระดับ 21) เป็นต้นไป ซึ่งจะปิดเสียงและการสั่นสำหรับการแจ้งเตือนทั้งหมด การแจ้งเตือนจะยังปรากฏใน UI ระบบตามปกติ เว้นแต่ผู้ใช้จะระบุเป็นอย่างอื่น

โหมดห้ามรบกวนมี 3 ระดับดังนี้

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

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

ใน Android 8.0 (API ระดับ 26) ขึ้นไป ผู้ใช้อนุญาตให้แสดงการแจ้งเตือนสำหรับหมวดหมู่เฉพาะของแอป (หรือที่เรียกกันว่า "ช่องทาง") เป็นการเพิ่มเติมได้ด้วยการลบล้างโหมดห้ามรบกวนในช่องทางที่ต้องการทีละช่องทาง ตัวอย่างเช่น แอปสำหรับการชำระเงินอาจมีช่องทางสำหรับการแจ้งเตือนที่เกี่ยวข้องกับการถอนและการฝากเงิน ผู้ใช้จะเลือกอนุญาตให้แสดงการแจ้งเตือนการถอนเงิน การแจ้งเตือนการฝากเงิน หรือทั้งคู่เมื่อใช้โหมดลำดับความสำคัญสูงได้ สำหรับอุปกรณ์ที่ใช้ Android 7.1 (API ระดับ 25) และต่ำกว่า ผู้ใช้อนุญาตให้แสดงการแจ้งเตือนแบบทีละแอปได้ แทนที่จะอนุญาตแบบทีละช่องทาง

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

การแจ้งเตือนสำหรับบริการที่ทำงานอยู่เบื้องหน้า

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

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

จำนวนการแจ้งเตือนสูงสุด

เริ่มตั้งแต่ Android 8.1 (API ระดับ 27) เป็นต้นไป แอปจะส่งเสียงเตือนได้เพียง 1 ครั้งในแต่ละวินาที หากแอปแสดงการแจ้งเตือนหลายรายการใน 1 วินาที การแจ้งเตือนทั้งหมดจะปรากฏขึ้นตามที่ควรจะเป็น แต่จะมีเฉพาะการแจ้งเตือนแรกในแต่ละวินาทีเท่านั้นที่ส่งเสียงเตือน

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

ความเข้ากันได้ของการแจ้งเตือน

นับจาก Android 1.0 เป็นต้นมา UI ของระบบการแจ้งเตือนและ API ที่เกี่ยวข้องกับการแจ้งเตือนมีการพัฒนาไปอย่างต่อเนื่อง หากต้องการใช้ฟีเจอร์ล่าสุดของ API การแจ้งเตือนในขณะที่ยังรองรับอุปกรณ์รุ่นเก่าอยู่ ให้ใช้ API การแจ้งเตือนในไลบรารีสนับสนุน ซึ่งได้แก่ NotificationCompat และคลาสย่อย รวมถึง NotificationManagerCompat ซึ่งจะช่วยให้คุณไม่ต้องเขียนโค้ดแบบมีเงื่อนไขเพื่อตรวจสอบระดับ API เนื่องจาก API เหล่านี้จะจัดการเรื่องดังกล่าวให้คุณเอง

NotificationCompat ได้รับการอัปเดตขณะที่แพลตฟอร์มค่อยๆ พัฒนาขึ้นให้รวมเมธอดล่าสุดไว้ด้วย โปรดทราบว่าความพร้อมใช้งานของเมธอดใน NotificationCompat ไม่ได้รับประกันว่าฟีเจอร์ที่เกี่ยวข้องจะมีให้ใช้งานในอุปกรณ์รุ่นเก่า ในบางกรณี การเรียกใช้ API ที่เพิ่งเปิดตัวจะทำให้ดำเนินการต่างๆ ในอุปกรณ์รุ่นเก่าไม่ได้ เช่น NotificationCompat.addAction() จะแสดงปุ่มการทำงานในอุปกรณ์ที่ใช้ Android 4.1 (API ระดับ 16) ขึ้นไปเท่านั้น

ต่อไปนี้เป็นสรุปการเปลี่ยนแปลงลักษณะการทำงานที่เด่นชัดที่สุดของการแจ้งเตือนใน Android

Android 4.1, API ระดับ 16

  • เปิดตัวเทมเพลตการแจ้งเตือนที่ขยายได้ (ใช้ชื่อว่า "รูปแบบการแจ้งเตือน") ซึ่งช่วยให้มีพื้นที่สำหรับเนื้อหาการแจ้งเตือนขนาดใหญ่ขึ้นสำหรับแสดงข้อมูล ผู้ใช้ใช้ 1 นิ้วเลื่อนขึ้น/ลงเพื่อขยายการแจ้งเตือนได้
  • นอกจากนี้ยังเปิดตัวความสามารถในการเพิ่มการทำงานเพิ่มเติมในรูปแบบของปุ่มลงในการแจ้งเตือน
  • ความสามารถเพิ่มเติมให้ผู้ใช้ปิดใช้งานการแจ้งเตือนแบบทีละแอปได้ในการตั้งค่า

Android 4.4, API ระดับ 19 และ 20

  • เพิ่มบริการ Listener การแจ้งเตือนใน API
  • เพิ่มการรองรับ Android Wear (ตอนนี้ใช้ชื่อว่า Wear OS) ใน API ระดับ 20

Android 5.0, API ระดับ 21

  • เปิดตัวการแจ้งเตือนในหน้าจอล็อกและการแจ้งเตือนล่วงหน้า
  • ตอนนี้ผู้ใช้เปลี่ยนให้โทรศัพท์อยู่ในโหมดห้ามรบกวนได้ และกำหนดว่าการแจ้งเตือนประเภทใดที่รบกวนตนได้เมื่ออุปกรณ์อยู่ในโหมด "เฉพาะที่มีลำดับความสำคัญสูงเท่านั้น"
  • เพิ่มเมธอดใน API ซึ่งกำหนดว่าจะแสดงการแจ้งเตือนในหน้าจอล็อก (setVisibility()) หรือไม่ และเพื่อระบุข้อความแจ้งเตือนเวอร์ชัน “สาธารณะ”
  • เพิ่มเมธอด setPriority() ซึ่งบอกระบบว่าการแจ้งเตือนนี้ควรจะ "รบกวน" ผู้ใช้ในลักษณะใด (เช่น การตั้งค่าเป็น "ระดับสูง" ทำให้การแจ้งเตือนปรากฏเป็นการแจ้งเตือนล่วงหน้า)
  • เพิ่มการรองรับสแต็กการแจ้งเตือนในอุปกรณ์ Android Wear (ตอนนี้ใช้ชื่อว่า Wear OS) ใส่การแจ้งเตือนลงในสแต็กโดยใช้ setGroup() โปรดทราบว่าสแต็กการแจ้งเตือนยังใช้งานไม่ได้ในแท็บเล็ตหรือโทรศัพท์ ต่อมามีการเรียกสแต็กการแจ้งเตือนนี้ว่า "กลุ่ม" หรือ "บันเดิล"

Android 7.0, API ระดับ 24

  • เทมเพลตการแจ้งเตือนได้รับการจัดรูปแบบใหม่เพื่อเน้นรูปภาพหลักและภาพที่ใช้แทนบุคคล
  • เพิ่มเทมเพลตการแจ้งเตือน 3 รายการ ได้แก่ รายการหนึ่งสำหรับแอปรับส่งข้อความ และอีก 2 รายการสำหรับการตกแต่งมุมมองเนื้อหาที่กำหนดเองและขยายได้ รวมทั้งการตกแต่งระบบแบบอื่นๆ
  • เพิ่มการรองรับอุปกรณ์มือถือ (โทรศัพท์และแท็บเล็ต) สำหรับกลุ่มการแจ้งเตือน ใช้ API เดียวกันกับสแต็กการแจ้งเตือน Android Wear (ปัจจุบันใช้ชื่อว่า Wear OS) ที่เปิดตัวใน Android 5.0 (API ระดับ 21)
  • ผู้ใช้ตอบกลับภายในการแจ้งเตือนได้โดยตรง (ป้อนข้อความซึ่งจะส่งไปยังแอปหลักของการแจ้งเตือนได้) โดยใช้การตอบกลับแบบในหน้า

Android 8.0, API ระดับ 26

  • ต้องใส่การแจ้งเตือนแต่ละรายการในช่องทางเฉพาะ
  • ผู้ใช้ปิดการแจ้งเตือนในแต่ละช่องทางได้ แทนที่จะปิดการแจ้งเตือนทั้งหมดจากแอป
  • แอปที่มีการแจ้งเตือนที่ใช้งานอยู่จะมี "ป้าย" แสดงการแจ้งเตือนทับบนไอคอนแอปนั้นๆ ในหน้าจอหลัก/หน้าจอ Launcher
  • ผู้ใช้เลื่อนการแจ้งเตือนได้จากลิ้นชัก คุณตั้งค่าระยะหมดเวลาอัตโนมัติสำหรับการแจ้งเตือนได้
  • คุณตั้งค่าสีพื้นหลังของการแจ้งเตือนได้ด้วย
  • ย้าย API บางตัวที่เกี่ยวข้องกับลักษณะการทำงานของการแจ้งเตือนจาก Notification ไปยัง NotificationChannel ตัวอย่างเช่น ใช้ NotificationChannel.setImportance() แทน NotificationCompat.Builder.setPriority() สำหรับ Android 8.0 ขึ้นไป