2016-07-19 6 views
1

In meiner App möchte ich Apps (Messaging, Kontakte, etc.) starten, wenn meine gestartete App (Messaging, Kontakte, etc) ist bereits im Hintergrund läuft ich es front.I versucht mit moveTaskToFront() aber es implementiert nicht von oben API 23 (Lollipop) .So, landete ich mit diesem Code bringen wollen:Bring die App in den Vordergrund und wenn es bereits läuft, anstatt neue Instanz davon in Android

Intent intent=getPackageManager().getLaunchIntentForPackage("com.android.mms"); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 

Durch die Nutzung dieser Code, wenn Ich starte eine Nachricht aus meiner App, die gestartet wird, und wenn ich dieselbe App erneut aus meiner App heraus starte, wird sie perfekt fortgesetzt und von dort fortgesetzt, wo wir sie verlassen haben. Aber wenn ich die gleiche Messaging-App von meinem Standard-Android-Launcher startet, erstellen Sie einfach eine neue Instanz der Messaging-App oberhalb meiner bereits laufenden Messaging-App, die bereits von meiner App gestartet wurde. Ich weiß nicht, was die Lösung dafür ist. Bitte helfen Sie mir ...

+2

Haben Sie schon von [Activity Launch modes] (https://developer.android.com/guide/topics/manifest/activity-element.html) gehört? – Arjun

+0

@SlashG Ja Ich habe es versucht, aber es auch neue Instanz – Adarsh

+0

erstellen, wenn Sie Android: launchMode = "singleInstance" innerhalb der Tag, es erstellt keine neue Instanz ...... aber nur für Ihre Aktivität. .. – Opiatefuchs

Antwort

0

Verwenden Sie den folgenden Ansatz, Intents in Ihrer App wie folgt aufzurufen.

Intent intent = new Intent(CONTEXT, TARGET_ACTIVITY.CLASS); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
+0

ok Ich werde es versuchen – Adarsh

+0

Es startet die App von Anfang an komplett neu :( – Adarsh

+1

Der obige Code ist nützlich in Ihrer eigenen App, wie Sie wollen fire gleiche Aktivität von der Benachrichtigung, aber AFAIK, wenn Sie 'Explicit Intents 'aufrufen, erstellt es als Aufrufen der Basisaktivität des aufgerufenen Intents, was zu einer anderen Instanz derselben Anwendung führt. –