non removable notification

后端 未结 4 543
别那么骄傲
别那么骄傲 2020-12-05 07:57

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

相关标签:
4条回答
  • 2020-12-05 08:06

    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();
    
    0 讨论(0)
  • 2020-12-05 08:30

    Sound like Notification.FLAG_NO_CLEAR or Notification.FLAG_ONGOING_EVENT is what you are looking for.

    0 讨论(0)
  • 2020-12-05 08:31

    To Create Non removable notification just use setOngoing (true);

    To Create removable notification just use setOngoing (false);

    0 讨论(0)
  • 2020-12-05 08:33

    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");
    
    0 讨论(0)
提交回复
热议问题