Несъемное уведомление

В моем приложении работает служба на фоновом режиме. Я хочу уведомить пользователя о том, что служба запущена. Но мне нужно, чтобы пользователь не мог удалить уведомление – нажав кнопку «Очистить» или прокрутив его, на панели уведомлений

Введите описание изображения здесь

Это означает, что мне нужно показать мое уведомление выше области уведомлений

Это возможно, но способ, которым вы его реализуете, зависит от уровня API, для которого вы разрабатываете.

Для уровней API ниже 11 вы можете установить Notification.FLAG_NO_CLEAR . Это можно реализовать следующим образом:

// Create notification Notification note = new Notification(R.drawable.your_icon, "Example notification", System.currentTimeMillis()); // Set notification message note.setLatestEventInfo(context, "Some text", "Some more text", clickIntent); // THIS LINE IS THE IMPORTANT ONE // This notification will not be cleared by swiping or by pressing "Clear all" note.flags |= Notification.FLAG_NO_CLEAR; 

Для уровней API выше 11 или при использовании библиотеки поддержки Android можно реализовать ее следующим образом:

 Notification noti = new Notification.Builder(mContext) .setContentTitle("Notification title") .setContentText("Notification content") .setSmallIcon(R.drawable.yourIcon) .setLargeIcon(R.drawable.yourBigIcon) .setOngoing(true) // Again, THIS is the important line .build(); 

Для создания несвязанных уведомлений просто используйте setOngoing (true);

 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_service_launcher) .setContentTitle("My title") .setOngoing(true) .setContentText("Small text with details"); 

Звучит как Notification.FLAG_NO_CLEAR или Notification.FLAG_ONGOING_EVENT – это то, что вы ищете.