Java 更新现有通知
既然最新的Android SDK中已经不推荐使用该方法,那么我们有没有办法更新现有通知的内容?我怀疑他们希望我们在每次更新通知内容时都创建一个新的通知Java 更新现有通知,java,android,Java,Android,既然最新的Android SDK中已经不推荐使用该方法,那么我们有没有办法更新现有通知的内容?我怀疑他们希望我们在每次更新通知内容时都创建一个新的通知 似乎也没有更新以使用建议的类。通知类上有许多公共字段,您可以直接更改,只需保留对它的引用即可。它的其他特性显然不是为了改变而设计的(如果通知发生了实质性的改变,可能会让用户感到困惑) 您需要使用不推荐的方法,或者重新生成通知并显示新的通知 是,您可以更新现有通知的内容。但您必须以相同的通知id以类似的方式重新生成它。还要删除所有相关标志并将优先级
似乎也没有更新以使用建议的类。通知类上有许多公共字段,您可以直接更改,只需保留对它的引用即可。它的其他特性显然不是为了改变而设计的(如果通知发生了实质性的改变,可能会让用户感到困惑) 您需要使用不推荐的方法,或者重新生成通知并显示新的通知
是,您可以更新现有通知的内容。但您必须以相同的通知id以类似的方式重新生成它。还要删除所有相关标志并将优先级设置为默认值 相同的通知id确保不会创建新的通知id。由于通知已启动,因此“振动”和“灯光”等标志可能不合适。优先级设置为默认值,以便通知在通知托盘中的位置不会更改。如果优先级设置为高,则它将移动到纸盘顶部 下面是我如何实现的*我刚刚添加了相关代码
public void showNotification(String action){
RemoteViews views = new RemoteViews(getPackageName(),
R.layout.status_bar);
Notification status;
if(action.equals("play")){
views.setImageViewResource(R.id.status_bar_play, R.drawable.play);
status = notificationBuilder
.setSmallIcon(R.drawable.ic_launcher)
.setPriority(Notification.PRIORITY_HIGH)
.setContentIntent(pendingIntent)
.setContent(views)
.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS)
.build();
} else {
views.setImageViewResource(R.id.status_bar_play, R.drawable.pause);
status = notificationBuilder
.setSmallIcon(R.drawable.ic_launcher)
.setPriority(Notification.PRIORITY_DEFAULT)
.setContentIntent(pendingIntent)
.setContent(views)
.build();
}
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(Constants.NOTIFICATION_ID, status);
}
这样可以修改现有通知的内容