1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Notifications nur kurz einblenden

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von tobbbbi, 07.01.2011.

  1. tobbbbi, 07.01.2011 #1
    tobbbbi

    tobbbbi Threadstarter Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    3
    Registriert seit:
    06.01.2011
    Hi zusammen!

    Ich möchte die Notifications "missbrauchen" um Ergebnisse bzw. Statusinfos meiner App in der Infoleiste oben anzuzeigen.
    Dazu ist es ja nicht nötig, dass der anzeigte Status im Expandable hängen bleibt und daraus gelöscht werden muss bzw. sich automatisiert entfernt erst wenn man draufklickt.
    Man kann zwar über die cancel()-Methode explizit eine Notification löschen, nur muss das in meinem Fall ja verzögert geschehen, ansonsten kommt auch eine Exception.
    Die Verzögerung habe ich testweise über Thread.sleep(1000) implementiert, was auch ganz gut klappt.
    Das Problem: Bei oben übergebenem Zeitwert bleibt das Programm (logischerweise) kurz hängen, zeigt aber alles richtig an, spielt auch den Sound komplett ab.
    Bei zB. 100 ms merkt man den freeze nicht/kaum mehr, dafür wird aber der Sound auch nicht mehr abgespielt. Auch logisch, die Notification wird wohl zu schnell wieder entfernt.

    Nun meine Fragen:

    1. Wie kann man die Notification verzögert nebenläufig ausführen? Nur über Backgroundworker?

    2. Kann man die Notification, genauer den Ticker, benutzerdefiniert lange anzeigen lassen? Defaultmäßig ist das schon etwas kurz.

    3. Lustig ist ja die Sache mit der number()-Methode, welche dafür sorgt, dass eine Nummernanzeige über das Notificationicon geklatscht wird. Ist die Nummer zu lange (z.B. notification.number(12324325), werden einige Stellen untereinander gesetzt und der Rest einfach abgeschnitten. Irgendwie ist das schon fast ein Bug. :flapper: Jetzt würde mich interessieren, ob man diese kleine Grafik, die auf dem Icon landet auch modifizieren. Ist ja ein farbiger Kreis mit den Zahlen darauf.

    Vielen Dank schonmal für eure Hilfe!
     
  2. the_alien, 07.01.2011 #2
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    1. Naja, nebenläufig halt. Einen Thread starten, den warten lassen, dann Notification canceln.
    2. Klar, indem du den Wert vom User eingeben lässt in den Settings.
    3. Kenn ich nicht.
     
  3. tobbbbi, 07.01.2011 #3
    tobbbbi

    tobbbbi Threadstarter Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    3
    Registriert seit:
    06.01.2011
    1. Okay, also praktisch in nen eigenen Thread setzen?

    2. Kannst du das bitte nochmal etwas konkreter erläutern. Welche Settings?

    3. Einfach mal ausprobieren, ist ganz einfach und sieht lustig aus. Wenn du zB. mehrere SMS oder Anrufe hast, wird die number()-Methode benötigt.
     
  4. the_alien, 07.01.2011 #4
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    1. Ja, in einen eigenen Thread. Dann blockiert die GUI nicht.
    2. Es gibt ja die SharedPreferences und man kann sich Settings sehr einfach -inkl der typischen Settings Screens- über XML definieren. Dann bietest du dem Benutzer dort die Möglichkeit die Zeit einzustellen, wie lange gewartet wird. Das kannst du dann über die SharedPreferences auslesen.
     
  5. Fr4gg0r, 09.01.2011 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Da liegt wohl ein Missverständnis vor.
    Wenn eine Notification neu erscheint, dann wird nur sie angezeigt, und der Rest (Uhrzeit, Battery etc.) verschwindet, aber nur für eine kurze Zeit. Diese Zeitspanne will er erhöhen.
     
  6. tobbbbi, 09.01.2011 #6
    tobbbbi

    tobbbbi Threadstarter Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    3
    Registriert seit:
    06.01.2011
    Ja genau, du hast es korrekt erfasst!
    Kann man also diese Zeit anpassen und wnen ja, wie?

    Außerdem habe ich mich auch mit Toasts beschäftigt, welche ja auch gut geeignet sind um nen Status nebenläufig kurz anzuzeigen. Allerdings kann man nur zwei Anzeigedauern einstellen...short und long..
    Kennt ihr eine Möglichkeit diese selbst anzupassen?

     
  7. Stefan Baumgartner, 10.01.2011 #7
    Stefan Baumgartner

    Stefan Baumgartner Neuer Benutzer

    Beiträge:
    19
    Erhaltene Danke:
    2
    Registriert seit:
    20.10.2010
    zu deiner 2. Frage. Du kannst dir einen eigenen Dialog basteln den du dann mit einem CountDownTimer nur für eine bestimmte Zeit sichtbar machst. So hab ich das zumindest gemacht.
     
    tobbbbi bedankt sich.

Diese Seite empfehlen