Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

non removable notification

Tags:

In my app, there is service running on background. I want to notify user that the service is running. But I need that user cannot delete the notification - by pressing clear button or by swipe it out, in notification bar

enter image description here

It means I need to show my notification above Notification area

like image 874
Kelib Avatar asked Nov 17 '12 02:11

Kelib


People also ask

How do I get rid of non removable notifications?

First, press-and-hold on the persistent notification you want to remove. Another option is to swipe the notification left or right, and then tap on the cogwheel icon shown next to it. Next, tap on the switch next to Permanent to disable it, and then press Save.

What is a sticky notification?

The sticky notification ensures your device's complete protection by preventing Android from stopping Avast Mobile Security processes. On devices running Android 8.0 or higher, disabling the sticky notification is not an option.


2 Answers

This is possible but the way you implement it depends on the API level you develop for.

For API levels below 11, you can set Notification.FLAG_NO_CLEAR. This can be implemented like this:

// 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;

For API levels above 11, or when using the Android Support Library, one can implement it like this:

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();
like image 55
Ole Avatar answered Sep 17 '22 13:09

Ole


To Create Non removable notification just use 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");
like image 20
cheetah Avatar answered Sep 18 '22 13:09

cheetah