Notification soll im Hintergrund laufende Activity wieder holen

R

renegade2k

Fortgeschrittenes Mitglied
8
Ich habe eine "Main"-Activity, die beim starten der App geladen wird. Diese lädt "onCreate" ein Service (TrackService), welcher ein paar Berechnungen anstellt, während die App ausgeführt wird. In dieser Zeit kann man die Main-Acitivity per Home-Button auch in den Hintergrund stellen.

An einem Bestimmten Punkt führt der Service die Methode "NoteBar" aus, welche den Benutzer über eine Notification über den Status der Berechnung informiert.

Nun soll der Benutzer, wie gewohnt, die App. bzw. die Main-Activity per klick auf die Notification in den Vordergrund holen können.
Bei mir passiert es jedoch, dass die Notification eine neue Main-Activity erstellt, was zur folge hat, dass die Variablen mit den initialen Werten belegt werden, anstatt die bereits vorgenommenen Werte wieder aufzugreifen.
Beende ich nun die "neue" Main-Activity über den Back-Button, sehe ich sofort meine "alte" Main-Activity.

Eventuell sieht ja jemand ein Fehler in meinem Code und kann mir ein Tipp geben, was ich falsch mache ...

Die Methode befindet sich in der Service-Klasse.
Code:
public void noteBar(){
        notif = Context.NOTIFICATION_SERVICE;
        mNotificationManager = (NotificationManager) getSystemService(notif);
        int icon = R.drawable.ic_launcher;
        long when = System.currentTimeMillis();
        notification = new Notification(icon, contentText, when);
        contentTitle = "Achtung";
        notificationIntent = new Intent(this, Main.class);
        notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
        contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
        mNotificationManager.notify(1, notification);
    }
Zuvor wird "context" mit "getApplicationContext();" in der "onCreate" des Services initialisiert, sowie die ganzen Variablen mit "null" bzw bereits vordefinierten Werten, die vermutlich bei der Lösung des Problems keine Bedeutung haben
 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
Sollte den gewünschten Effekt herbeiführen.
 
  • Danke
Reaktionen: renegade2k
Ein Bekannter meinte noch, ich solle zusätzlich den Flag "FLAG_ACTIVITY_CLEAR_TOP" setzen.
Wenn ich das aber so richtig lese, hat das zur Folge, dass alles, was nach der Main-Activity gestartet wurde geschlossen wird? Oder verstehe ich das falsch?
 

Ähnliche Themen

D
  • Data2006
3 4 5
Antworten
84
Aufrufe
3.707
jogimuc
J
S
Antworten
9
Aufrufe
1.213
swa00
swa00
D
  • djsnoopy
Antworten
6
Aufrufe
617
djsnoopy
D
Zurück
Oben Unten