20

在我的应用程序中,有服务在后台运行。我想通知用户该服务正在运行。但是我需要该用户不能删除通知-在通知栏中按清除按钮或将其滑出

在此处输入图像描述

这意味着我需要在通知区域上方显示我的通知

4

4 回答 4

64

这是可能的,但您实现它的方式取决于您开发的 API 级别。

对于低于 11 的 API 级别,您可以设置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;

对于 11 以上的 API 级别,或者使用Android Support Library时,可以这样实现:

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();
于 2012-11-17T03:22:18.057 回答
13

要创建不可移除的通知,只需使用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");
于 2014-04-03T09:50:24.313 回答
3

听起来像Notification.FLAG_NO_CLEARNotification.FLAG_ONGOING_EVENT是您正在寻找的。

于 2012-11-17T03:21:40.577 回答
1

要创建不可移除的通知,只需使用 setOngoing (true);

要创建可移动通知,只需使用 setOngoing (false);

于 2018-06-04T10:27:29.993 回答