The Android Developer Challenge is back! Submit your idea before December 2.

Ringkasan Notifikasi

Notifikasi adalah pesan yang ditampilkan Android di luar UI aplikasi Anda untuk memberikan pengingat, komunikasi dari orang lain kepada pengguna, atau informasi tepat waktu lainnya dari aplikasi Anda. Pengguna dapat mengetuk notifikasi untuk membuka aplikasi Anda atau melakukan tindakan langsung dari notifikasi.

Halaman ini memberikan ringkasan tempat notifikasi muncul dan fitur yang tersedia. Jika Anda ingin mulai membuat notifikasi, baca Buat Notifikasi.

Untuk informasi lebih lanjut tentang pola desain dan interaksi, lihat Panduan desain Notifikasi. Selain itu, lihat Sampel Notifikasi Android untuk demonstrasi praktik terbaik dalam menggunakan API Notification.Style di aplikasi seluler dan wearable.

Penampilan pada perangkat

Notifikasi muncul kepada pengguna di berbagai lokasi dan format, seperti ikon di status bar, entri yang lebih detail panel samping notifikasi, sebagai badge pada ikon aplikasi, dan pada perangkat wearable yang dapat dipasangkan secara otomatis.

Status bar dan panel samping notifikasi

Saat Anda mengeluarkan notifikasi, notifikasi tersebut akan muncul pertama kali sebagai ikon di status bar.

Gambar 1. Ikon notifikasi muncul di sebelah kiri status bar

Pengguna dapat menggeser ke bawah status bar untuk membuka panel samping notifikasi, tempat mereka dapat melihat detail lebih lanjut dan melakukan tindakan dengan notifikasi tersebut.

Gambar 2. Notifikasi di panel samping notifikasi

Pengguna dapat menyeret ke bawah notifikasi di panel samping untuk menampilkan tampilan yang diperluas, yang menampilkan konten tambahan dan tombol tindakan, jika disediakan.

Notifikasi tetap terlihat di panel samping notifikasi hingga ditutup oleh aplikasi atau pengguna.

Notifikasi pendahuluan

Dimulai dengan Android 5.0, notifikasi dapat muncul sebentar di jendela mengambang yang disebut notifikasi pendahuluan. Perilaku ini biasanya untuk notifikasi penting yang harus diketahui pengguna dengan segera, dan notifikasi tersebut hanya muncul jika perangkat dibuka kuncinya.

Gambar 3. Notifikasi pendahuluan muncul di depan aplikasi latar depan

Notifikasi pendahuluan muncul saat aplikasi Anda mengeluarkan notifikasi dan menghilang setelah beberapa saat, tetapi tetap terlihat di panel samping notifikasi seperti biasa.

Contoh kondisi yang mungkin memicu notifikasi pendahuluan termasuk yang berikut:

  • Aktivitas pengguna sedang dalam mode layar penuh (aplikasi menggunakan fullScreenIntent)
  • Notifikasi memiliki prioritas tinggi dan menggunakan nada dering atau getaran pada perangkat yang menjalankan Android 7.1 (API level 25) dan yang lebih rendah.
  • Saluran notifikasi sangat penting pada perangkat yang menjalankan Android 8.0 (API level 26) dan yang lebih tinggi.

Layar kunci

Dimulai dengan Android 5.0, notifikasi dapat muncul di layar kunci.

Anda dapat secara programatik menyetel tingkat detail yang terlihat dalam notifikasi yang diposting aplikasi Anda pada layar kunci aman, atau bahkan apakah notifikasi tersebut akan ditampilkan di layar kunci.

Pengguna dapat menggunakan setelan sistem untuk memilih tingkat detail yang terlihat dalam notifikasi layar kunci, termasuk opsi untuk menonaktifkan semua notifikasi layar kunci. Dimulai dengan Android 8.0, pengguna dapat memilih untuk menonaktifkan atau mengaktifkan notifikasi layar kunci untuk setiap saluran notifikasi.

Gambar 4. Notifikasi di layar kunci dengan konten sensitif disembunyikan

Untuk mempelajari lebih lanjut, lihat cara Menyetel visibilitas layar kunci.

Badge ikon aplikasi

Di launcher yang didukung pada perangkat yang menjalankan Android 8.0 (API level 26) dan lebih tinggi, ikon aplikasi menunjukkan notifikasi baru dengan "badge" berwarna (juga dikenal sebagai "titik notifikasi") pada ikon launcher aplikasi yang sesuai.

Pengguna dapat menekan lama pada ikon aplikasi untuk melihat notifikasi untuk aplikasi tersebut. Pengguna kemudian dapat mengabaikan atau bertindak pada notifikasi dari menu itu, mirip dengan panel samping notifikasi.

Gambar 5. Badge notifikasi dan tekan lama menu

Untuk mempelajari lebih lanjut tentang cara kerja badge, baca Badge pemberitahuan.

Perangkat Wear OS

Jika pengguna memiliki perangkat Wear OS yang dipasangkan, semua notifikasi Anda muncul di sana secara otomatis, termasuk detail yang dapat diperluas dan tombol aksi.

Anda juga dapat meningkatkan pengalaman dengan menyesuaikan beberapa tampilan untuk pemberitahuan tentang perangkat wearable dan memberikan tindakan yang berbeda, termasuk balasan yang disarankan dan balasan masukan suara. Untuk informasi lebih lanjut, lihat cara menambahkan fitur khusus wearable pada notifikasi Anda.

Gambar 6. Notifikasi secara otomatis muncul pada perangkat Wear OS yang dipasangkan

Notifikasi anatomi

Desain notifikasi ditentukan oleh template sistem—aplikasi Anda hanya menentukan konten untuk setiap porsi template. Beberapa detail notifikasi hanya muncul di tampilan yang diperluas.

Gambar 7. Notifikasi dengan detail dasar

Bagian notifikasi yang paling umum ditunjukkan pada gambar 7 sebagai berikut:

  1. Ikon kecil: Ini diperlukan dan disetel dengan setSmallIcon().
  2. Nama aplikasi: Ini disediakan oleh sistem.
  3. Stempel waktu: Ini disediakan oleh sistem tetapi Anda dapat menggantinya dengan setWhen() atau menyembunyikannya dengan setShowWhen(false).
  4. Ikon besar: Ini opsional (biasanya hanya digunakan untuk foto kontak; jangan gunakan untuk ikon aplikasi Anda) dan setel dengan setLargeIcon().
  5. Judul: Ini opsional dan disetel dengan setContentTitle().
  6. Teks: Ini opsional dan disetel dengan setContentText().

Untuk informasi lebih lanjut tentang cara membuat notifikasi dengan fitur-fitur ini dan lainnya, baca Buat Notifikasi.

Tindakan notifikasi

Meskipun tidak diperlukan, setiap notifikasi harus membuka aktivitas aplikasi yang sesuai saat diketuk. Selain tindakan notifikasi default ini, Anda dapat menambahkan tombol tindakan yang menyelesaikan tugas terkait aplikasi dari notifikasi (seringkali tanpa membuka aktivitas), seperti yang ditunjukkan pada gambar 9.

Gambar 9. Notifikasi dengan tombol tindakan

Mulai Android 7.0 (API level 24), Anda juga dapat menambahkan tindakan untuk membalas pesan atau memasukkan teks lain langsung dari notifikasi.

Mulai di Android 10 (API level 29), platform dapat secara otomatis menghasilkan tombol tindakan dengan tindakan berbasis intent yang disarankan.

Menambahkan tombol tindakan dijelaskan lebih lanjut dalam Buat Pemberitahuan.

Notifikasi yang diperluas

Secara default, konten teks notifikasi akan dipotong agar sesuai pada satu baris. Jika Anda ingin notifikasi bertahan lebih lama, Anda dapat mengaktifkan area teks yang lebih besar yang dapat diperluas dengan menerapkan template tambahan, seperti yang ditampilkan pada gambar 8.

Gambar 8. Notifikasi yang dapat diperluas untuk teks besar

Anda juga dapat membuat notifikasi yang dapat diperluas dengan gambar, dalam gaya kotak masuk, percakapan chat, atau kontrol pemutaran media. Untuk informasi lebih lanjut, baca Buat Notifikasi yang Dapat Diperluas.

Dan meskipun kami menyarankan Anda untuk selalu menggunakan template ini untuk memastikan kompatibilitas desain yang tepat pada semua perangkat, jika perlu, Anda juga dapat membuat tata letak notifikasi khusus.

Update dan grup notifikasi

Untuk menghindari mengirimkan notifikasi yang berlebihan kepada pengguna saat Anda memiliki pembaruan tambahan, sebaiknya pertimbangkan untuk memperbarui notifikasi yang sudah ada daripada mengeluarkan yang baru, atau pertimbangkan menggunakan notifikasi dengan gaya kotak masuk untuk menampilkan pembaruan percakapan.

Namun, jika Anda perlu untuk mengirim banyak notifikasi, sebaiknya pertimbangkan untuk mengelompokkan notifikasi yang terpisah ke dalam grup (tersedia di Android 7.0 dan lebih tinggi). Dengan grup notifikasi, Anda dapat menciutkan beberapa notifikasi menjadi satu postingan di panel samping notifikasi, dengan ringkasannya. Pengguna kemudian dapat memperluas notifikasi untuk menampilkan detail untuk setiap notifikasi individual.

Pengguna secara progresif dapat memperluas grup notifikasi dan setiap notifikasi di dalamnya untuk detail selengkapnya.

Gambar 10. Grup notifikasi yang diciutkan dan diperluas

Untuk mempelajari cara menambahkan notifikasi ke grup, lihat Buat Grup Pemberitahuan.

Saluran notifikasi

Mulai Android 8.0 (API level 26), semua notifikasi harus ditetapkan ke saluran atau tidak akan muncul. Dengan mengelompokkan notifikasi ke saluran, pengguna dapat menonaktifkan saluran notifikasi khusus untuk aplikasi Anda (alih-alih menonaktifkan semua notifikasi Anda), dan pengguna dapat mengontrol opsi visual dan audio untuk setiap saluran—semua dari setelan sistem Android (gambar 11). Pengguna juga dapat menekan lama notifikasi untuk mengubah perilaku saluran terkait.

Pada perangkat yang menjalankan Android 7.1 (API level 25) dan lebih rendah, pengguna hanya dapat mengelola notifikasi berdasarkan per aplikasi (secara efektif setiap aplikasi hanya memiliki satu saluran pada Android 7.1 dan lebih rendah).

Gambar 11. Setelan notifikasi untuk aplikasi Jam dan salah satu salurannya

Satu aplikasi dapat memiliki beberapa saluran notifikasi—saluran terpisah untuk setiap jenis notifikasi yang menjadi masalah aplikasi. Aplikasi juga dapat membuat saluran notifikasi sebagai tanggapan atas pilihan yang dibuat oleh pengguna aplikasi Anda. Misalnya, Anda dapat menyiapkan saluran notifikasi terpisah untuk setiap grup percakapan yang dibuat oleh pengguna di aplikasi perpesanan.

Saluran ini juga tempat Anda menentukan tingkat kepentingan tingkat urgensi untuk notifikasi Anda di Android 8.0 dan lebih tinggi. Jadi, semua notifikasi yang diposting ke saluran notifikasi yang sama akan memiliki perilaku yang sama.

Untuk informasi selengkapnya, lihat Buat dan Kelola Saluran Notifikasi.

Urgensi notifikasi

Android menggunakan urgensi notifikasi untuk menentukan seberapa mengganggu notifikasi tersebut bagi pengguna (secara visual dan audio). Semakin tinggi urgensi suatu notifikasi, semakin mengganggu notifikasi tersebut.

Pada Android 8.0 (API level 26) dan di atasnya, urgensi notifikasi ditentukan oleh importance saluran yang diposting pemberitahuan. Pengguna dapat mengubah urgensi saluran pemberitahuan dalam setelan sistem (gambar 12). Pada Android 7.1 (API level 25) dan di bawahnya, urgensi setiap notifikasi ditentukan oleh priority notifikasi.

Gambar 12. Pengguna dapat mengubah urgensi setiap saluran di Android 8.0 dan lebih tinggi

Tingkat urgensi yang mungkin adalah sebagai berikut:

  • Penting: Membuat suara dan muncul sebagai notifikasi pendahuluan.
  • Tinggi: Bersuara.
  • Medium: Tidak ada suara.
  • Rendah: Tidak ada suara dan tidak muncul di status bar.

Semua notifikasi, terlepas dari urgensinya, muncul di lokasi sistem UI yang tidak mengganggu, seperti di panel samping notifikasi dan sebagai badge pada ikon launcher (meskipun Anda dapat mengubah penampilan badge notifikasi).

Untuk informasi selengkapnya, lihat cara menyetel urgensi.

Mode Jangan Ganggu

Mulai di Android 5.0 (API level 21), pengguna dapat mengaktifkan mode Jangan Ganggu, yang mendiamkan suara dan getaran untuk semua notifikasi. Notifikasi akan tetap muncul di UI sistem seperti biasa, kecuali jika pengguna menetapkan sebaliknya.

Ada tiga level berbeda yang tersedia dalam mode Jangan Ganggu:

  • Senyap total: memblokir semua suara dan getaran, termasuk dari alarm, musik, video, dan game.
  • Hanya alarm: memblokir semua suara dan getaran, kecuali dari alarm.
  • Hanya prioritas: pengguna dapat mengonfigurasi kategori dalam lingkup sistem yang dapat mengganggu mereka (seperti hanya alarm, pengingat, acara, panggilan, atau pesan). Untuk pesan dan panggilan, pengguna juga dapat memilih untuk memfilter berdasarkan siapa pengirim atau penelepon (gambar 13).

Gambar 13. Pengguna dapat mengizinkan notifikasi melalui berdasarkan kategori dalam lingkup sistem (kiri) dan berdasarkan siapa pengirim pesan atau peneleponnya (kanan).

Di Android 8.0 (API level 26) dan di atasnya, pengguna juga dapat mengizinkan notifikasi untuk mendapatkan kategori khusus aplikasi (juga dikenal sebagai saluran) dengan mengganti Jangan Ganggu berdasarkan per saluran. Misalnya, aplikasi pembayaran mungkin memiliki saluran untuk notifikasi terkait penarikan dan penyetoran. Pengguna kemudian dapat memilih untuk mengizinkan notifikasi penarikan, notifikasi setoran, atau keduanya saat dalam mode prioritas. Pada perangkat yang menjalankan Android 7.1 (API level 25) dan di bawahnya, pengguna dapat mengizinkan notifikasi muncul berdasarkan per aplikasi, bukan berdasarkan per saluran.

Untuk mengonfigurasi notifikasi Anda dengan benar untuk setelan pengguna ini, Anda harus menyetel kategori dan saluran dalam lingkup sistem.

Notifikasi untuk layanan latar depan

Notifikasi diperlukan ketika aplikasi Anda menjalankan "layanan latar depan"—sebuah Service berjalan di latar belakang yang berumur panjang dan terlihat oleh pengguna, seperti pemutar media. Notifikasi ini tidak dapat ditutup seperti notifikasi lainnya. Untuk menghapus notifikasi, layanan harus dihentikan atau dihapus dari status "latar depan".

Untuk informasi selengkapnya, baca Menjalankan layanan di latar depan. Dan jika Anda membuat pemutar media, baca juga Menggunakan notifikasi MediaStyle dengan layanan latar depan.

Batas posting

Dimulai dengan Android 8.1 (API level 27), aplikasi tidak dapat mengeluarkan suara notifikasi lebih dari sekali per detik. Jika aplikasi Anda memposting beberapa notifikasi dalam satu detik, semua notifikasi tersebut muncul seperti yang diharapkan, tetapi hanya notifikasi pertama per detik yang mengeluarkan suara.

Namun, Android juga menerapkan batas nilai saat memperbarui notifikasi. Jika Anda terlalu sering memposting pembaruan ke satu notifikasi (banyak dalam waktu kurang dari satu detik), sistem mungkin akan membatalkan beberapa update.

Kompatibilitas notifikasi

Sejak Android 1.0, UI sistem notifikasi dan API terkait notifikasi terus berevolusi. Untuk menggunakan fitur API notifikasi terbaru sekaligus tetap mendukung perangkat yang lebih lama, gunakan API notifikasi library dukungan: NotificationCompat dan subclass-nya, serta NotificationManagerCompat. Ini akan memungkinkan Anda menghindari penulisan kode kondisional untuk memeriksa level API karena API ini menanganinya untuk Anda.

NotificationCompat diperbarui saat platform berevolusi untuk memasukkan metode terbaru. Penting untuk diingat bahwa ketersediaan metode dalam NotificationCompat tidak menjamin bahwa fitur yang sesuai akan disediakan pada perangkat yang lebih lama. Dalam beberapa kasus, memanggil API yang baru diperkenalkan mengakibatkan no-op pada perangkat yang lebih lama. Misalnya, NotificationCompat.addAction() menampilkan tombol tindakan pada perangkat yang menjalankan Android 4.1 (API level 16) dan lebih tinggi saja.

Berikut ini adalah ringkasan perubahan perilaku yang paling terkenal untuk notifikasi Android.

Android 4.1, API level 16

  • Memperkenalkan template notifikasi yang dapat diperluas (disebut gaya pemberitahuan), memungkinkan area konten notifikasi yang lebih besar menampilkan informasi. Pengguna dapat menggunakan gesekan satu jari ke atas/bawah untuk memperluas notifikasi.
  • Juga memperkenalkan kemampuan untuk menambahkan tindakan tambahan, dalam bentuk tombol, ke notifikasi.
  • Kemampuan tambahan bagi pengguna untuk menonaktifkan notifikasi berdasarkan per aplikasi dalam setelan.

Android 4.4, API level 19 dan 20

  • Layanan listener pemberitahuan ditambahkan ke API.
  • Dukungan Android Wear (sekarang disebut Wear OS) telah ditambahkan di API level 20.

Android 5.0, API level 21

  • Layar kunci dan notifikasi pendahuluan yang diperkenalkan.
  • Pengguna kini dapat mengaktifkan mode Jangan Ganggu di ponsel dan mengonfigurasikan notifikasi mana yang diizinkan untuk mengganggu mereka saat perangkat dalam mode prioritas saja.
  • Metode yang ditambahkan ke API menyetel apakah pemberitahuan ditampilkan pada layar kunci (setVisibility()) atau tidak dan untuk menentukan versi “publik” dari teks notifikasi.
  • Metode setPriority() ditambahkan yang memberi tahu sistem seberapa “mengganggu” notifikasi ini (mis. menyetelnya menjadi tinggi membuat notifikasi muncul sebagai notifikasi pendahuluan).
  • Dukungan tumpukan notifikasi ditambahkan ke perangkat Android Wear (sekarang disebut Wear OS). Aktifkan tumpukan di notifikasi dengan menggunakan setGroup(). Perlu diingat bahwa tumpukan notifikasi belum didukung di tablet atau ponsel. Tumpukan notifikasi kemudian dikenal sebagai grup atau bundel.

Android 7.0, API level 24

  • Template notifikasi diubah gayanya untuk lebih menekankan gambar pahlawan dan avatar.
  • Tiga template notifikasi ditambahkan: satu untuk aplikasi pengiriman pesan dan dua lainnya untuk menghias tampilan konten khusus dengan biaya terjangkau dan dekorasi sistem lainnya.
  • Dukungan ditambahkan ke perangkat genggam (ponsel dan tablet) untuk grup notifikasi. Menggunakan API yang sama dengan tumpukan notifikasi Android Wear (sekarang disebut Wear OS) yang diperkenalkan di Android 5.0 (API level 21).
  • Pengguna dapat langsung membalas di dalam notifikasi (mereka dapat memasukkan teks yang kemudian akan dialihkan ke aplikasi induk notifikasi) dengan menggunakan balasan inline.

Android 8.0, API level 26

  • Notifikasi individual kini harus dimasukkan ke saluran tertentu.
  • Pengguna kini dapat menonaktifkan notifikasi per saluran, alih-alih menonaktifkan semua notifikasi dari suatu aplikasi.
  • Aplikasi dengan notifikasi aktif menampilkan "badge" notifikasi di atas ikon aplikasi di layar home/launcher.
  • Pengguna kini dapat menunda notifikasi dari panel samping. Anda dapat menyetel waktu tunggu otomatis untuk notifikasi.
  • Anda juga dapat menyetel warna latar belakang notifikasi.
  • Beberapa API tentang perilaku notifikasi dipindahkan dari Notification ke NotificationChannel. Misalnya, gunakan NotificationChannel.setImportance() bukan NotificationCompat.Builder.setPriority() untuk Android 8.0 dan yang lebih tinggi.