当我观察到最新的app和gmail通知时,他们会自动更新应用程序的现有通知,而不会创建新的应用程序。
那我怎么能做到这一点?
我已经在上面的图像中创建了一个通知。所以
当时通知创建时有四条消息。
所以当我收到第五条消息时,它应该附加现有通知的内容,如图中红色所示。
请建议我在Gmail中使用哪种方法?
我如何才能实现这一目标?
答案 0 :(得分:2)
我的问题通过以下链接解决
Update text of notification, not entire notification
这是我的代码: -
PendingIntent pendingIntent = PendingIntent.getBroadcast(objContext, (int) (Math.random() * 100), intent, PendingIntent.FLAG_CANCEL_CURRENT);
NotificationManager manager = (NotificationManager) objContext.getSystemService(Context.NOTIFICATION_SERVICE);
if (firstTime) {
intCount++;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
inboxStyle = new Notification.InboxStyle();
}
Bitmap icon = BitmapFactory.decodeResource(objContext.getResources(), R.drawable.ic_launcher);
// Notification.Builder builder = new Notification.Builder(objContext);
builder = new Notification.Builder(objContext);
builder.setAutoCancel(true);
builder.setContentTitle("Studyboard");
builder.setDefaults(Notification.DEFAULT_ALL);
builder.setSmallIcon(R.drawable.ic_launcher_transparent_s);
builder.setLargeIcon(icon);
builder.setWhen(Calendar.getInstance().getTimeInMillis());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
builder.setStyle(inboxStyle);
}
builder.setOngoing(false);
builder.setContentIntent(pendingIntent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
builder.build();
inboxStyle.addLine(senderFullName + " : " + strDisplayMsg);
inboxStyle.setSummaryText("");
}
System.out.println("Creating New Notification");
Notification myNotication = builder.getNotification();
manager.notify("Example", 12345, myNotication);
firstTime = false;
} else {
intCount++;
builder.setWhen(Calendar.getInstance().getTimeInMillis());
System.out.println("Not Creating");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
builder.setStyle(inboxStyle);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (intCount <= 3)
inboxStyle.addLine(senderFullName + " : " + strDisplayMsg);
if (intCount > 3 && intCount - 3 > 0)
inboxStyle.setSummaryText("+" + (intCount - 3) + " more messages");
}
Notification myNotication = builder.getNotification();
manager.notify("Example", 12345, myNotication);
}
对于下次执行重置标志并在广播接收器中计数,以捕获通知
的操作