4. Ma`ruza: Internet obyektlaridan foydalanib Activityni ishga tushurish


Download 111.21 Kb.
Pdf ko'rish
bet2/2
Sana22.02.2023
Hajmi111.21 Kb.
#1223037
1   2
Bog'liq
4 Ma`ruza.

Faoliyat stekini boshqarish 
Faoliyatdan stekni boshqarish uchun Android bizga Intent sinfida belgilangan 
bayroqlardan foydalanishni taklif qiladi. Muayyan bayroqni qo'llash bizga ma'lum 
harakatlar uchun ma'lum bir tarzda stekdagi pozitsiyani o'zgartirishga imkon beradi. 
Masalan, oldingi vazifani olaylik, ThirdActivity-dagi tugmani bosgandan so'ng, 
MainActivity-ning yangi nusxasi ishga tushiriladi. Ammo biz yangisini ishga 
tushirmoqchi emasmiz, balki mavjudiga o'tamiz. 
MainActivity 
ThirdActivity 


SecondActivity 
MainActivity 
bu vaziyatdan chiqish uchun Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 
bayrog'idan foydalanishimiz mumkin: 
Intent intent = new Intent(this, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(intent); 
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT bayrog'i, agar u stekda bo'lsa, 
o'tkazilayotgan faoliyatni stekning yuqori qismiga ko'chiradi. Va bu holda
ThirdActivity-dan MainActivity-ga o'tgandan so'ng, stek quyidagicha ko'rinadi: 
MainActivity 
ThirdActivity 
SecondActivity 
Agar biz ThirdActivity-dan MainActivity-ga o'tishimiz kerak bo'lsa, xuddi 
Orqaga 
tugmasi 
yordamida 
orqaga 
qaytgandek, 
biz 
Intent.FLAG_ACTIVITY_CLEAR_TOP 
va 
Intent.FLAG_ACTIVITY_SINGLE_TOP bayroqlaridan foydalanishimiz mumkin: 
Intent intent = new Intent(this, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 

Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
Intent.FLAG_ACTIVITY_CLEAR_TOP bayrog'i ishga tushirilayotganidan 
tashqari 
(agar 

stekda 
bo'lsa) 
barcha 
harakatlarni 
o'chiradi. 
Intent.FLAG_ACTIVITY_SINGLE_TOP bayrog'i, agar stekning yuqori qismida 
ishga tushirilishi kerak bo'lgan faollik allaqachon mavjud bo'lsa, u BO'LIB 
BO'LMAYDI (keyin u stekda faqat bitta shaklda mavjud bo'lishi mumkin) 
ekanligini bildiradi. 
Bu holda, ThirdActivity-dan MainActivity-ga o'tgandan so'ng, stek to'liq 
tozalanadi va u erda faqat MainActivity qoladi. 
Boshqa belgi - Intent.FLAG_ACTIVITY_NO_HISTORY ishga tushirilgan 
faoliyatni stekda saqlamaslikka imkon beradi. Misol uchun, SecondActivity-ni ishga 
tushirganda, biz uni stekda saqlashni xohlamaymiz: 
Intent intent = new Intent(this, SecondActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
startActivity(intent); 
Bunday holda, MainActivity -> SecondActivity -> ThirdActivity zanjiri orqali 
o'tayotganda stek quyidagicha ko'rinadi: 
MainActivity 


ThirdActivity 

Download 111.21 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling