NotificationCompat.Builder

时间:2013-07-23 21:57:23

标签: android xml notifications

我发送的类的构造函数没有扩展 context

int icon = R.drawable.ic_launcher;
        long when = System.currentTimeMillis();
        myNotification = new NotificationCompat.Builder(context)
                .setSmallIcon(icon)
                .setContentTitle(context.getResources().getString(R.string.app_name))
                .setContentText(context.getResources().getString(R.string.app_name))
                .setWhen(when)
                .setTicker(context.getResources().getString(R.string.app_name))
                .setDefaults(Notification.FLAG_NO_CLEAR);

然后我通过RemoteViews和最后发送一些数据

Intent notificationIntent = new Intent(context, Menu_Activity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
contentView.setOnClickPendingIntent(R.id.layoutNotification, contentIntent);
myNotification.setContent(remoteView);

myNotification.setOngoing(false);
myNotification.setAutoCancel(false);

myNotification.setPriority(Notification.PRIORITY_HIGH);
myNotification.setContentIntent(contentIntent);

myNotificationManager.notify(NOTIFICATION_ID, myNotification.build());

但我需要设置此通知,无法通过将其滑动到侧面进行删除。现在我每次都可以通过滑动删除它。如何禁用它?

谢谢

2 个答案:

答案 0 :(得分:3)

通知构建器有一个方法setOngoing。将其设置为true可使通知成为用户无法解除的持续通知。

  

设置这是否是“正在进行的”通知。正在进行的通知   不能被用户解雇,因此您的应用程序或服务必须   照顾取消它们。它们通常用于表示a   用户积极参与的后台任务(例如,播放   音乐)或以某种方式待决,因此占用设备   (例如,文件下载,同步操作,活动网络连接)。

答案 1 :(得分:0)

您只需要使用setOngoing(true)。删除setAutoCancel(false)行。

使用setOngoing()和setAutoCancel()方法并不适用于我(通知未显示)。