2013-09-04 17 views
14

Mam powiadomienie, które próbuję zaktualizować, ponownie korzystając z tego samego narzędzia do tworzenia powiadomień, ale nie można wyczyścić przycisków, można tylko zadzwonić pod numer addAction. Nie używanie tego samego narzędzia Builder powoduje miganie powiadomienia, co jest niepożądane. Czy są jakieś rozwiązania? Używam NotificationCompat z biblioteki obsługi v4.Zmiana przycisków akcji na powiadomieniu

+0

Poszukuję również rozwiązania tego problemu, postępów w twoim problemie? –

+0

Czy możesz podać trochę więcej informacji? Co dokładnie próbujesz zrobić, co zrobiłeś? – Paramone

Odpowiedz

0

Masz dwie opcje, aby to osiągnąć:

  1. Użyj niestandardowy układ (wystarczy skopiować projekt rodzimej powiadomienia, jeśli chcesz), a następnie użyć tego w RemoteView i po prostu zrobić poglądy widoczne lub ukryć im. Na przykład z remoteView.setViewVisibility(...) ... lub zmień tekst przycisków ...
  2. Użyj refleksji, aby wyczyścić działania budowniczych. Będzie działać jak następuje:

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

To rzeczywiście public ArrayList<Action>, więc można zrobić whataver chcesz z nim.

Powiązane problemy