Intereting Posts
Установите границу и цвет фона textView Поиск списка всех приложений для Android на рынке Рамки, обнаруженные в студии Android Как загрузить изображение в синтаксический анализатор, используя parse api в android Является ли onDestroy () гарантированно вызванным для фрагментов? Как перезагрузить Android-эмулятор и сохранить системные данные Диалог пользовательского прогресса со скругленным поворотом изображения с помощью AsynTask Как мы можем скрыть панель заголовка при использовании панели действий? Использование LogCat на JellyBean Почему Android Studio перестраивает проект так медленно, даже если никаких изменений в источниках нет? Передавать растровое изображение из одной активности в другую Элементы меню не отображаются на панели действий Android: исключение класса не найдено: android.support.v4.app.FragmentPager Android ListView: не выделяется прикосновением, но работает, когда я использую трекбол Каков цвет Hex по умолчанию для Holo.Light.DarkActionBar ActionBar

Изменение кнопок действий в уведомлении

У меня есть уведомление, которое я пытаюсь обновить, повторно используя один и тот же Notification Builder, но нет возможности очистить кнопки, вы можете вызвать addAction . Не использование одного и того же Builder приводит к появлению уведомления, что нежелательно. Есть ли какие-либо решения для этого? Я использую NotificationCompat из библиотеки поддержки v4.

Solutions Collecting From Web of "Изменение кнопок действий в уведомлении"

 notificationBuilder.mActions.clear(); 

Это на самом деле public ArrayList<Action> , поэтому вы можете делать с ним whataver.

У вас есть два варианта:

  1. Используйте специальный макет (просто скопируйте дизайн собственного уведомления, если хотите), а затем используйте его в RemoteView и просто сделайте вид видимым или скройте. remoteView.setViewVisibility(...) помощью remoteView.setViewVisibility(...) … Или измените текст кнопок …
  2. Используйте рефлексию, чтобы очистить действия строителей. Будет работать следующим образом:

     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) {}