Ответ 1
notificationBuilder.mActions.clear();
На самом деле public ArrayList<Action>
, поэтому вы можете делать с ним то, что хотите.
У меня есть уведомление, которое я пытаюсь обновить, повторно используя один и тот же Notification Builder, но нет возможности очистить кнопки, вы можете вызывать только addAction
. Не использование одного и того же Builder приводит к появлению уведомления, что нежелательно. Есть ли какие-либо решения? Я использую NotificationCompat
из библиотеки поддержки v4.
notificationBuilder.mActions.clear();
На самом деле public ArrayList<Action>
, поэтому вы можете делать с ним то, что хотите.
У вас есть два варианта:
remoteView.setViewVisibility(...)
например... Или измените текст кнопок...Используйте отражение, чтобы очистить действия строителей. Будет работать следующим образом:
try {
//Use reflection to remove all old actions
Field f = mNotificationBuilder.getClass().getDeclaredField("mActions");
f.setAccessible(true);
f.set(mNotificationBuilder, new ArrayList<>());
}
catch (NoSuchFieldException e) {}
catch (IllegalAccessException e) {}