Amarengo

Articles and news

Startmodi in Android

Startmodi sind die Anweisungen, wie die Aktivitäten gestartet werden sollen. Sie sind von vier Arten, die unten angegeben sind.

  1. Standard
  2. singleTop
  3. singleTask
  4. singleInstance

Wenn Sie keinen Startmodus definieren, ist dieser standardmäßig Standard.

Hinzufügen von Startmodi

Sie können einen Startmodus aus dem Android-Manifest hinzufügen. Der folgende Code zeigt, wie es geht.

1
2

< aktivität android: name=“.MainActivity“
android:launchMode=“singleTop“></Aktivität>

Standard

Wenn Sie keinen Startmodus definieren, hat die Aktivität standardmäßig den Standardstartmodus. In diesem Fall wird jedes Mal, wenn Sie eine Aktivität starten, eine neue Instanz der Aktivität erstellt, auch wenn diese im Stapel vorhanden ist.

Beispiel ->

Angenommen, unser aktueller Stack ist A -> B -> C

und wir starten die Aktivität B erneut mit dem Startmodus „standard“

dann ist der neue Stack A -> B -> C -> B.

singleTop

Wie der Name schon sagt, wird bei diesem Startmodus nur ein einziger die Instanz der Aktivität ist vorhanden, wenn sie sich oben befindet.

Beispiel ->

  1. Angenommen, unser aktueller Stapel ist A -> B -> C
    und wir starten die Aktivität B erneut mit dem Startmodus „singleTop“
    dann ist der neue Stapel A -> B -> C -> B.
  2. Angenommen, unser aktueller Stapel ist A -> B -> C
    und wir starten die Aktivität C erneut mit dem Startmodus „singleTop“
    dann ist der neue Stapel A -> B -> C und die Absicht wird an die Methode onNewIntent() übergeben.

singleTask

In diesem Startmodus hat die Aktivität nur eine einzige Instanz im Stapel. Wenn die Instanz nicht vorhanden ist, wird eine neue erstellt, und wenn sie vorhanden ist, erhält die alte den Rückruf in der onNewIntent () -Methode.

Beispiel ->

Angenommen, unser aktueller Stapel ist A -> B -> C -> D

und wir starten die Aktivität B erneut mit dem Startmodus „singleTask“

dann ist der neue Stapel A -> B.

Wie Sie sehen können, wurde der Rückruf für die alte Instanz empfangen und C- und D-Aktivitäten werden zerstört.

singleInstance

Dies ähnelt der „singleTask“, außer dass die Aktivität mit dem Startmodus „singleInstance“ in einem neuen Stapel erstellt wird.

Beispiel ->

Angenommen, unser aktueller Stapel ist A -> B -> C

und wir starten die Aktivität D mit dem Startmodus „singleInstance“

dann gibt es zwei Stapel

  1. A -> B -> C
  2. D

Wenn Sie Aktivität E aufrufen, wird sie dem 1. Stapel hinzugefügt.

  1. A -> B -> C -> E
  2. D

Wenn Sie die Aktivität D erneut aufrufen, wird dieselbe Aktivität vom 2. Stapel aufgerufen und die Absicht an onNewIntent() .

Android empfiehlt, dass Sie das Standardverhalten verwenden sollten, aber wenn Sie das wirklich ändern möchten, können Sie dies tun.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.