2016-07-11 8 views
0

Ich-Abschusssystem Apps aus meiner app und ich kann es erfolgreich starten mit diesem CodeBringen Sie die App nach vorne, wenn es bereits ausgeführt wird, anstatt die Schaffung neuer Instanz davon

Intent i=getPackageManager.getLaunchIntentForPackage("Your package name"); 
i.setFlags(Intent.FLAGS_REORDER_TO_FRONT); 
i.setFlags(Intent.FLAGS_SINGLE_TOP); 
startActivity(i); 

Aber es immer neu gestartet oder erstellt Neue Instanz von app.Wenn die bestimmte App bereits läuft, möchte ich, dass sie es nach vorne bringt, anstatt neue Instanz davon zu erstellen. Ich habe viele Methoden ausprobiert, aber nicht funktioniert, es hat immer neue Instanz auf der Oberseite meines erstellt laufende App Bitte lösen Sie mein Problem

Antwort

0

Es hängt vom Startmodus der Aktivität, die Sie starten möchten.

Wenn der Startmodus „Standard“ ist, ist es nicht möglich, es nach vorne zu bringen:

eine neue Instanz ist immer für eine neue Absicht erstellt, wenn der Startmodus ist „Standard“ (source)

Für alle anderen Start-Modi, versuchen Sie die folgenden zwei Flaggen mit:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Wie in den documentation beschrieben diese sollten folgende Wirkung hat (die gewünschten Verhalten entsprechen soll):

FLAG_ACTIVITY_CLEAR_TOP am häufigsten in Verbindung mit FLAG_ACTIVITY_NEW_TASK verwendet wird. Wenn diese Flags zusammen verwendet werden, können Sie eine vorhandene Aktivität in einer anderen Aufgabe suchen und in eine Position bringen, in der sie auf die Absicht reagieren kann.

+0

OK Ich werde das versuchen :) – Rachan

+0

Nein, es hat nicht funktioniert es immer noch neue Instanz auf dem oben von meiner gestarteten App erstellen :( – Rachan