2013-09-04 14 views
14

Ho una notifica che sto tentando di aggiornare riutilizzando lo stesso Notification Builder, ma non c'è modo di cancellare i pulsanti, è possibile chiamare solo addAction. Non si utilizzano gli stessi risultati Builder nella notifica lampeggiante, il che è indesiderabile. Ci sono soluzioni a questo? Sto usando NotificationCompat dalla libreria di supporto v4.Modifica dei pulsanti di azione su una notifica

+0

Sto cercando anche una soluzione per questo, qualsiasi progresso sul tuo problema? –

+0

Potresti fornire qualche informazione in più? Che cosa stai cercando di fare esattamente, che cosa hai fatto? – Paramone

risposta

0

si hanno due opzioni per raggiungere tale:

  1. utilizzare un layout personalizzato (basta copiare il design della notifica nativo se si desidera) e poi utilizzare questo in un RemoteView e solo fare una vista visibile o nascondere loro. Con remoteView.setViewVisibility(...) ad esempio ... O modificare il testo dei pulsanti ...
  2. Utilizzare la riflessione per cancellare le azioni del builder. Sarebbe lavorare come segue:

    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(); 

In realtà è public ArrayList<Action>, in modo da poter fare whataver che vuoi con esso.

Problemi correlati