2012-04-04 13 views
16

Beschreibung:Intent Aktivität zu beginnen - aber bringt nicht nach vorne

  • Aktivität A sichtbar ist (oder im Hintergrund)
  • Intent I wird durch eine Übertragung mit wertvollen Extras erhalten und übergibt dann die Extras an eine neue Absicht I2, die verwendet wird, um Aktivität A zu starten.
  • Ergebnis: Bringen Sie keine Aktivität nach vorne , wenn Aktivität im Hintergrund ist.

Code:

Intent I2= new Intent(context, MyActivity.class); 
I2.putExtra(.. 
I2.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(I2); 

Anmerkung: Ich habe keine "android: taskAffinity" zu manifestieren .. Ich dachte, du

+2

Warum möchten Sie starten, wenn Sie nicht möchten, dass es im Vordergrund ist, ..? Was willst du machen? – ngesh

+0

Also habe ich es aktualisiert: Bringe die Aktivität NICHT nach vorne, wenn die Aktivität im Hintergrund ist! – pulancheck1988

+0

Verwenden Sie 'FLAG_ACTIVITY_MULTIPLE_TASK' nicht dafür! Wenn Sie mehrere Aufgaben starten, wird es sehr schwierig sein, sie zu verwalten. Dies ist eine Dose Würmer, die Sie nicht öffnen möchten! –

Antwort

7

wissen sollten, wenn Sie Ihre Aktivität im Hintergrund sein wollen diese Zeile hinzufügen in der oncreate Tätigkeits

moveTaskToBack(true); 
+0

Es zeigt die Aktivität für eine Sekunde obwohl. – zgulser

4

können Sie diese Zeile in Ihrer onCreate() Methode verwenden:

moveTaskToBack(true); 
+0

können Sie mir sagen, wie kann ich die Aktivität nach dem Aufruf 'moveTaskToBack (true) neu starten;' ich verwendet 'Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK' aber nicht die Aktivität neu starten, die sie neu machen .. Hinweis ** i Instanz gleiche Aktivität viele Male – medo

2

Sie möchten Activity nicht im Hintergrund starten. Es gibt bessere Möglichkeiten zu tun, was Sie wollen. Sie können Ihre Activity registrieren, um zum Beispiel die Sendung Intent zu empfangen. Es wird den Anruf zu onReceive() erhalten, auch wenn es im Hintergrund ist. Sie können feststellen, ob Ihre Activity im Hintergrund ist, indem Sie eine Variable auf true in onPause() und auf false in onResume() setzen. Dann in onReceive(), wenn die Variable true ist, sind Sie im Hintergrund.

Verwandte Themen