2012-01-14 15 views
5

Pomyślnie utworzyłem niestandardowe powiadomienie rozszerzone dla systemu Android> = 3.0, które wyświetla tekst i dodatkowy przycisk. Jeśli klikniesz powiadomienie w dowolnym miejscu, ale na przycisku w menu powiadomień, powiadomienie zostanie odrzucone, lista rozwijana zostanie zamknięta, a określony cel zostanie uruchomiony zgodnie z oczekiwaniami. Po kliknięciu dedykowanego przycisku w powiadomieniu, inne działanie zostało pomyślnie uruchomione, ale rozwijane menu pozostaje otwarte (a powiadomienie nadal istnieje, ale później anuluję, to nie jest problem). Intencja uruchamia działanie, które pojawia się za menu powiadomień.Jak zamknąć menu powiadomień w Androidzie> = 3.0 od niestandardowego powiadomienia o bogatej ofercie z dodatkowym przyciskiem?

Co chcę osiągnąć, to zachować dotychczasowe zachowanie zgodnie z opisem, ale także zamknąć menu powiadomień z przycisku Intent the button - czy jest to możliwe? Alternatywnie wystarczyłoby, gdyby Aktywność z przycisku Intent zyskała ostrość okna.

Oto kod dla powiadomienia niestandardowego, czy to pomaga:

  Notification.Builder builder = new Notification.Builder(main) 
       .setSmallIcon(R.drawable.notification) 
       .setAutoCancel(true) 
       .setTicker(text) 
       .setContentIntent(...); 

      RemoteViews layout = new RemoteViews(
        main.getPackageName(), R.layout.notification); 
      layout.setTextViewText(R.id.title, title); 
      layout.setTextViewText(R.id.text, text); 
      Intent i = new Intent(
        "snooze", null, main, Snooze.class 
      ); 
      i.putExtra(KEY_WIDGET_ID, widgetId); 
      layout.setOnClickPendingIntent(R.id.notification_zzz, PendingIntent.getActivity(main, 0, i, PendingIntent.FLAG_UPDATE_CURRENT)); 
      builder.setContent(layout); 

      ... 
      NotificationManager nm = 
       (NotificationManager)main.getSystemService(Context.NOTIFICATION_SERVICE); 
      nm.notify(0, builder.getNotification()); 

Odpowiedz

2

zadawane pytanie w godzinach pracy z systemem Android Developer: http://www.youtube.com/watch?v=XvLBvdml_Fs (pytanie rozpoczynające 49:10)

odpowiedź była, że nie jest to możliwe i nie powinienem tego robić, o co pytam. Dlatego stworzyliśmy żądanie cecha: http://code.google.com/p/android/issues/detail?id=24762

EDIT 10.08.12: Począwszy Android 4.1 jest to możliwe, jak powiadomienia mogą teraz zawierać dodatkowe działania. Więcej informacji można znaleźć na następnej stronie: https://developer.android.com/about/versions/android-4.1.html#UI

+0

Czy rozwiązałeś ten problem lub zmieniłeś projekt aplikacji? – Hunt

+1

Dla systemu Android 3.0 do 4.0 nie znalazłem rozwiązania. Ale jak wspomniano powyżej w Androidzie 4.1 i wyżej jest wbudowany mechanizm dodatkowych działań, które również zamkną listę rozwijaną i właśnie tego używam. Więcej informacji znajdziesz tutaj: http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Actions – mdiener