我有一项活动会生成一个30分钟后触发的通知。 我的通知正常。该通知可以被用户驳回,但会一直持续到被驳回(这是故意的行动)。
如果我再次运行活动,我希望从活动传递的新信息附加到现有通知。 我正在努力编写一个条件方法来更新通知,附加文本而不是替换已经存在的内容文本。
这全部保存在由待定意图调用的接收器类中:
public void onReceive(Context context, Intent notifyIntent) {
//attempt at using existing number held in the notification
if (notifyNumber != null){
oldNoticationNumber = " + " + notifyNumber;
} else {
oldNotificationNumber = "";
}
//Import Variables
numberFromActivity = notifyIntent.getStringExtra(ImplementingClass.numberFromActivity);
if ("".equals(numberFromActivity)){
numberFromActivity = "..(NOT SUPPLIED)..";
}
notifyNumber = numberFromActivity + oldNotificationNumber;
//Notification
mNotificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
int notifyID = 1;
Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mNotifyBuilder = new NotificationCompat.Builder(context)
.setContentTitle("Check blah blah blah for...")
.setContentText("A number: " + notifyNumber)
.setSmallIcon(R.drawable.ic_stat_name)
.setSound(notificationSound)
.setVibrate(new long[] { 500, 200, 500, 200, 500,200 });
// Because the ID remains unchanged, the existing notification is
// updated.
mNotificationManager.notify(
notifyID,
mNotifyBuilder.build());
}
正如你所看到的,我认为可行的是,如果通知仍然存在(即没有被解雇),它将保留变量
Private String notifyNumber
但它所做的就是用新的notifyNumber替换以前的内容文本。
如果通知已被解除,那么我希望它只显示新的notifyNumber。
我试图避免创建多个Pending Intents。