Sobes.tech
Middle

Šta je Task i u kojim slučajevima se koristi?

sobes.tech АИ

Одговор од АИ

Task je jedinica rada u Androidu koja predstavlja skup povezanih Activities. Activities unutar jednog Taska su raspoređene u steku (back stack) u redosledu njihovog otvaranja.

Koristi se za:

  • Upravljanje životnim ciklusom Activity: Task određuje vidljivost i dostupnost Activity.
  • Navigaciju između aplikacija: Pri pokretanju Activity iz druge aplikacije, ona se obično smešta u njen sopstveni Task.
  • Određivanje ponašanja tastera "Nazad": Taster "Nazad" sukcesivno zatvara Activities u trenutnom Tasku.
  • Izolaciju Activity: Activities iz različitih Taskova, po defaultu, ne interaguju direktno.

Primeri upotrebe:

  • Obična upotreba aplikacije: Otvaranje različitih ekrana (Activities) u okviru jednog Taska.
  • Pokretanje galerije iz messenger-a: Galerija se otvara u svom Tasku, a nakon odabira slike, vraćamo se u Task messenger-a.
  • Obrada obaveštenja: Otvaranje Activity iz obaveštenja može kreirati novi Task ili koristiti postojeći, u zavisnosti od zastavica namere.

Posebno ponašanje Task:

  • Svaki Task može imati samo jednu korensku Activity.
  • Novi Task se kreira kada se Activity pokrene sa zastavicom FLAG_ACTIVITY_NEW_TASK.
  • Postojeći Task može biti prebačen u prvi plan ako se pozove Activity koja već pripada njemu, sa zastavicama FLAG_ACTIVITY_SINGLE_TOP ili FLAG_ACTIVITY_CLEAR_TOP.
// Primer pokretanja Activity u novom Tasku
val intent = Intent(this, NewTaskActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)