您好我已经创建了一个Notification类,我可以从中创建多个通知:
int id=0;
id++;
notification = new NotificationCompat.Builder(this)
.setContentTitle(title)
.setSmallIcon(icon)
.setContentText(dataNotes)
.setWhen(time)
.setAutoCancel(false)
.setOngoing(true)
.addAction(action)
.setStyle(new NotificationCompat.BigTextStyle().bigText(dataNotes))
.build();
nm.notify(id,notification);
所以,我的问题是如何获取我创建的每个通知的ID。我想在取消特定通知时使用该ID。
我知道StatusBarNotification
包含getId()
方法来获取ID,但我不知道如何实现它。任何人都可以帮助我。
答案 0 :(得分:1)
只需将您的通知ID声明为静态即可。每次创建通知时,都会根据每个通知设置唯一的ID。
每次对通知执行操作时,都会获取意图ID。
按如下所示创建通知按钮,以对每个通知执行某些操作。
public ActionButtonConfig getEditCityButton(CountryConfig countryConfig,
CityConfig cityConfig, Integer notificationId) {
ArrayList<Class> params = new ArrayList<>();
params.add(context.getClass());
params.add(countryConfig.getClass());
params.add(cityConfig.getClass());
params.add(notificationId.getClass());
ArrayList<Object> arguments = new ArrayList<>();
arguments.add(context);
arguments.add(countryConfig);
arguments.add(cityConfig);
arguments.add(notificationId);
return getActionButton(NotificationButton.ACTION, getParamArray(params),
arguments.toArray());
}
此操作按钮配置将为您提供您需要对通知执行的任何操作。
public static int notificationCount = 0;
void buildNotification(NotificationConfig notification) {
try {
buildNotification(//get items from notification config here and also notificationCount);
notificationCount++;
} catch (Exception e) {
Log.e("Notification builder err",e);
}
}
在上面的代码中,看到通知计数是静态的,并且每次生成通知时,通知计数都会更新,并且之前的值可以在以后的阶段使用。
进一步通知使用通知管理器生成最后一行中的通知。
希望这有效。干杯