4. Ma`ruza: Internet obyektlaridan foydalanib Activityni ishga tushurish
Download 111.21 Kb. Pdf ko'rish
|
1 2
Bog'liq4 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 u 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
ma'muriyatiga murojaat qiling