2013-09-04 7 views
14

J'ai une notification que j'essaie de mettre à jour en réutilisant le même générateur de notifications, mais il n'y a aucun moyen d'effacer les boutons, vous pouvez seulement appeler addAction. Si vous n'utilisez pas le même constructeur, le clignotement des notifications est indésirable. Y a-t-il des solutions à cela? J'utilise NotificationCompat à partir de la bibliothèque de support v4.Modification des boutons d'action d'une notification

+0

Je suis également à la recherche d'une solution pour cela, tout progrès sur votre problème? –

+0

Pourriez-vous fournir un peu plus d'informations? Qu'est-ce que vous essayez exactement de faire, qu'avez-vous fait? – Paramone

Répondre

0

Vous avez deux options pour y parvenir:

  1. Utilisez une mise en page personnalisée (il suffit de copier la conception de la notification native si vous voulez), puis l'utiliser dans un RemoteView et juste faire des vues visibles ou cacher leur. Avec remoteView.setViewVisibility(...) par exemple ... Ou changer le texte des boutons ...
  2. Utilisez la réflexion pour effacer les actions des constructeurs. Fonctionnerait comme suit:

    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) {} 
    
4
notificationBuilder.mActions.clear(); 

Il est en fait public ArrayList<Action>, de sorte que vous pouvez faire whataver vous voulez.

Questions connexes