2016-07-15 8 views
1

Ich habe diese Codezeile verwendet, um meine App intent.setFlags(805306368); starten und es startet perfekt die App und setzt sie fort, wenn es im Hintergrund ausgeführt wird. Aber was bedeutet die ganze Zahl 805306368? Was macht es, um meine App wieder aufzunehmen, wenn sie läuft?Was bedeutet es intent.setFlags (805306368) in android

Antwort

3

805306368 entspricht 0x30000000 in hex und 0x30000000 wird verwendet, um die Intent mit den folgenden Flags zu öffnen:

Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP 

So, ihr Äquivalent der obigen Kombination oder 0x30000000 zu verwenden.

Von Android docs FLAG_ACTIVITY_SINGLE_TOP, FLAG_ACTIVITY_NEW_TASK:

FLAG_ACTIVITY_SINGLE_TOP = 0x20000000 
FLAG_ACTIVITY_NEW_TASK = 0x10000000 

So ist die Kombination results in 0x30000000

Auch, wie in docs den neuen Task-Flag dh erwähnt, FLAG_ACTIVITY_NEW_TASK verwendet wird, das folgende Verhalten zu erreichen:

Wenn dieses Flag verwendet wird, wenn bereits eine Aufgabe für die Aktivität ausgeführt wird Wenn Sie jetzt starten, wird keine neue Aktivität gestartet. Stattdessen wird einfach die aktuelle Aufgabe des vor dem Bildschirm mit dem Staat war es zuletzt in gebracht werden.

und die einzigen Top-Flagge dh, FLAG_ACTIVITY_SINGLE_TOP verwendeten das folgende Verhalten zu erreichen, wie in den docs erwähnt :

Wenn diese Option aktiviert ist, wird die Aktivität nicht gestartet, wenn sie bereits am Anfang des Protokollstapels ausgeführt wird.

Diese Markierungen helfen Ihnen also, Ihre Aktivität fortzusetzen und verhindern das Öffnen einer neuen Aktivität.

+0

Ausgezeichnete Antwort @Ashish ... +1 – Hackerman

+0

Danke für die tolle Erklärung – Adarsh