Amarengo

Articles and news

startlägen i Android

startlägen är instruktionerna för hur aktiviteterna ska startas. De är av fyra typer som ges nedan.

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

om du inte definierar något startläge kommer det att vara standard som standard.

så här lägger du till lanseringslägen

du kan lägga till ett lanseringsläge från Android Manifest. Nedanstående kod visar hur man gör det.

1
2

<aktivitet android: name=”.MainActivity ”
android: launchMode= ”singleTop” >< / aktivitet>

Standard

om du inte definierar något startläge kommer aktiviteten som standard att ha standardstartläge. I det här fallet skapas en ny instans av aktiviteten varje gång du startar en aktivitet även om den finns i stacken.

exempel ->

Antag att vår nuvarande stack är A -> B -> C

och vi startar aktiviteten B igen med lanseringsläget ”standard”

då kommer den nya stacken att vara A -> B -> C -> B.

SingleTop

som namnet antyder, med detta lanseringsläge bara en enda instans av aktiviteten kommer att vara närvarande om den är på toppen.

exempel ->

  1. Antag att vår nuvarande stack är A -> B -> C
    och vi startar aktiviteten B igen med lanseringsläget ”singleTop”
    då kommer den nya stacken att vara A -> B -> C -> B.
  2. Antag att vår nuvarande stack är A -> B -> C
    och vi startar aktiviteten C igen med lanseringsläget ”singletop”
    då kommer den nya stacken att vara A -> B -> C och avsikten kommer att skickas till onnewintent () – metoden.

SingleTask

med detta startläge har aktiviteten bara en enda instans i stacken. Om instansen inte finns där kommer den att skapa en ny och om den finns där kommer den gamla att få återuppringningen i onNewIntent () – metoden.

exempel ->

Antag att vår nuvarande stack är A – > B – > C – > D

och vi startar aktiviteten B igen med lanseringsläget ”singleTask”

då kommer den nya stacken att vara A -> B.

som du kan se att återuppringningen har mottagits på den gamla instansen och C-och D-aktiviteter förstörs.

SingleInstance

detta liknar ”singleTask” utom aktiviteten med ”singleInstance” lanseringsläge kommer att skapas i en ny stack.

exempel ->

Antag att vår nuvarande stack är A -> B -> C

och vi startar aktiviteten D med lanseringsläget ”singleInstance”

då kommer det att finnas två staplar

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

om du ringer aktivitet E då det kommer att läggas till den 1: A stacken.

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

ringa aktiviteten D igen kommer att ringa samma aktivitet från 2: a stacken och skicka avsikten till onNewIntent().

Android rekommenderar att du ska använda standardbeteendet men om du verkligen vill ändra det så är det så du kan göra det.

Lämna ett svar

Din e-postadress kommer inte publiceras.