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

Frage zu Service/Notifikation (Beispiel "FakePlayer")

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von cstarling, 31.01.2012.

  1. cstarling, 31.01.2012 #1
    cstarling

    cstarling Threadstarter Neuer Benutzer

    Beiträge:
    11
    Erhaltene Danke:
    0
    Registriert seit:
    31.10.2011
    Hallo,

    Ich habe eine Problem mit Service/Notifikation
    Meine Anforderung ist: Ich will ein Programm dauerhaft am Laufen haben.

    Ich habe mich daher an das gern zitierte Beispiel FakePlayer
    https://github.com/commonsguy/cw-android/tree/master/Notifications/FakePlayer
    gehalten, da das meinen Wünschen entspricht.

    Meine eigenen Programm-Versuche die sich an das Beispiel halten, aber auch das Original hat folgendes Verhalten, welches ich nicht verstehe:

    Wenn das Programm gestartet wird und dann der Service gestartet wird erscheint wie gewünscht ein Eintrag in der Notifikationbar.
    Wenn das Programm im Hintergrund ist kann man es über die Notifikationbar wieder hochholen, auch mehrfach.
    Man kann es auch über das Homescreen-Icon hochholen mit dem man es gestartet wurde, auch mehrfach.
    Soweit, sogut...

    Bei folgender Abfolge:
    -Programmstart und Servicestart
    -Programm in den Hintergrund legen
    -das Programm mit der Notifikationbar wieder hochholen
    -Programm in den Hintergrund legen
    -das Programm über das Homescreen-Icon hochholen
    Tritt folgendes Probleme auf:
    Es wird nicht das laufende Programm hochgeholt, sondern eine neue Instanz gestartet (es wird onCreate ausgeführt). Diese beiden Instanzen kann man dann mit 2x Zurück-Taste getrennt beenden.

    Dieses Verhalten tritt grundsätzlich auf, wenn man die Verwendung der beiden Möglichkeiten das Programm wieder hochzuholen mischt!

    Kann dieses Verhalten jemand nachvollziehen?
    Was habe ich da falsch verstanden/was habe ich falsch gemacht?

    Meine Vermutung ist, das da etwas mit den Flags bei Intent oder der Notifikation nicht stimmt.
    Allerdings habe ich an mehreren Stellen im Internet genau diese Verwendung der Flags gesehen.

    ORIGINAL-KODE "FakePlayer"
    Notification note=new Notification(R.drawable.stat_notify_chat, "Can you hear the music?", System.currentTimeMillis());
    Intent i=new Intent(this, FakePlayer.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pi=PendingIntent.getActivity(this, 0, i, 0);
    note.setLatestEventInfo(this, "Fake Player", "Now Playing: \"Ummmm, Nothing\"", pi);
    note.flags|=Notification.FLAG_NO_CLEAR;
    startForeground(1337, note);

    Gruß
    cstarling
     

Diese Seite empfehlen