如何在android中取消取消关闭通知
嗨,我是新来的 我为通知编写了这段代码如何在android中取消取消关闭通知,android,notifications,android-notifications,android-pendingintent,Android,Notifications,Android Notifications,Android Pendingintent,嗨,我是新来的 我为通知编写了这段代码 PendingIntent pendingIntent = PendingIntent.getActivity(context, leadidforstatus, myIntent, Intent.FLAG_ACTIVITY_NEW_TASK); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(R.dra
PendingIntent pendingIntent = PendingIntent.getActivity(context, leadidforstatus,
myIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.noti)
.setContentTitle("LMS notification")
.setContentIntent(pendingIntent)
.setContentText(intent.getStringExtra("messagenotify"))
.setAutoCancel(true);
i = (int) System.currentTimeMillis();
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(i, mBuilder.build());
在其中,我设置了一个通知列表。其中有些显示,有些不显示。但我想取消所有未显示的通知
PendingIntent pendingIntent = PendingIntent.getActivity(context, leadidforstatus,
myIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.noti)
.setContentTitle("LMS notification")
.setContentIntent(pendingIntent)
.setContentText(intent.getStringExtra("messagenotify"))
.setAutoCancel(true);
i = (int) System.currentTimeMillis();
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(i, mBuilder.build());
我使用了mNotificationManager.canclall,但这是“取消”,仅显示通知。
提前谢谢 我认为您正在搜索类似的内容 检查一下那篇帖子上的答案。使用该id取消该特定通知 我想你代码中的id部分是这样的
i = (int) System.currentTimeMillis();
NotificationManager维护所有NotificationList的列表,并在此列表上执行取消或取消所有操作 我尝试在notify、enqueueNotificationWithTag和cancelAllNotification中搜索NotificationManager.java和NotificationManagerService.java的Google源代码,但没有实现取消先前取消的通知 根据您的评论,若您的用户被删除,并且他的通知到达,那个么用户已经被删除,所以通知并没有任何意义
i = (int) System.currentTimeMillis();
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(i, mBuilder.build());
// i should be Id for this notification, i think you want to pass
// time in mili second here
我认为这里的问题是,通知在创建后立即启动,并且您没有使用AlarmManager来安排此通知 解决方案应该是通过AlarmManager安排警报,该管理器将触发上述通知代码 这需要三个部分: 注册BroadCastReceiver并在其被触发时生成通知:
public class UtilityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// .. Here is where you really want to build the notification and notify
// This will be triggered by the AlarmManager from the Code below
PendingIntent pendingIntent = PendingIntent.getActivity(context, leadidforstatus, myIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.noti)
.setContentTitle("LMS notification")
.setContentIntent(pendingIntent)
.setContentText(intent.getStringExtra("messagenotify"))
.setAutoCancel(true);
i = (int) System.currentTimeMillis();
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(i, mBuilder.build());
}
使用AlarmManager计划警报,以发送上面的接收器正在收听的广播:
// Create an Intent to Launch
Intent notificationIntent = new Intent(context, UtilityReceiver.class);
// Use a Pending Intent to Launch the Alarm
PendingIntent notificationPendingIntent = PendingIntent.getBroadcast(context,
PendingIntent.FLAG_ONE_SHOT, notificationIntent, Intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeForAlarmInMillis, notificationPendingIntent);
然后,当您遇到不再需要为应用程序显示通知的情况时,您会告诉AlarmManager通过重建挂起的意图并使用AlarmManager取消,将其从警报队列中删除
// Create an Intent to Launch
Intent notificationIntent = new Intent(context, UtilityReceiver.class);
// Use a Pending Intent to Launch the Alarm
PendingIntent notificationPendingIntent = PendingIntent.getBroadcast(context,
PendingIntent.FLAG_ONE_SHOT, notificationIntent, Intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// *********Important this will cancel all the Matching PendingIntents
alarmManager.cancel(notificationPendingIntent);
祝您好运,请确保在您的活动或清单中注册您的接收者。您希望取消所有取消通知的要求是什么?您怎么能说有些已显示,有些未显示NotificationManager会显示通过idI传递给notify的每个通知,其中有一些用户。我将其中一个用户通知设置为明天。但不幸的是他已经走了。所以我删除用户。关于这一点,我也想删除他的通知。这不是Shankar所说的。。取消将仅取消以前显示的通知。。将向用户显示一次。。我们想取消挂起的通知now@kushal你们有解决这个问题的办法吗?