Muqobil resurslar bilan ta'minlash
Deyarli har bir ilova muayyan qurilma konfiguratsiyasini qo'llab-quvvatlash uchun muqobil resurslarni taqdim etishi kerak. Misol uchun, siz turli xil ekran zichligi uchun muqobil tortiladigan resurslarni va turli tillar uchun muqobil qator resurslarini kiritishingiz kerak. Ishlash vaqtida Android joriy qurilma konfiguratsiyasini aniqlaydi va ilovangiz uchun tegishli resurslarni yuklaydi.
Resurslar to'plami uchun konfiguratsiyaga xos muqobillarni belgilash uchun:
res/Shaklda nomlangan yangi katalog yarating. -
mos keladigan standart resurslarning katalog nomi (1-jadvalda aniqlangan).
- bu resurslardan foydalanish kerak bo'lgan individual konfiguratsiyani ko'rsatadigan nom (2-jadvalda aniqlangan).
Siz bir nechta qo'shishingiz mumkin . Har birini chiziq bilan ajrating.
Tegishli muqobil resurslarni ushbu yangi katalogga saqlang. Resurs fayllari standart manba fayllari bilan bir xil nomlanishi kerak.
Kvalifikator hdpiushbu katalogdagi resurslar yuqori zichlikli ekranga ega qurilmalar uchun ekanligini bildiradi. Ushbu chizilgan kataloglarning har biridagi tasvirlar ma'lum bir ekran zichligi uchun o'lchamlarga ega, ammo fayl nomlari aynan bir xil. icon.png Shunday qilib, siz yoki rasmga murojaat qilish uchun foydalanadigan resurs identifikatori background.png har doim bir xil bo'ladi, lekin Android qurilma konfiguratsiyasi ma'lumotlarini resurs katalogi nomidagi kvalifikatsiyalar bilan solishtirib, joriy qurilmaga eng mos keladigan har bir resurs versiyasini tanlaydi.
Ba'zi qurilma konfiguratsiyalari ish vaqti davomida o'zgarishi mumkin (masalan, ekran yo'nalishi, klaviatura mavjudligi va foydalanuvchi ko'p oyna rejimini yoqganda ). Bunday o'zgarish sodir bo'lganda, Android ishga tushirishni qayta ishga tushiradi Activity( onDestroy() chaqiriladi, keyin). Qayta ishga tushirish harakati ilovangizni yangi qurilma konfiguratsiyasiga mos keladigan muqobil resurslar bilan avtomatik ravishda qayta yuklash orqali yangi konfiguratsiyalarga moslashishga yordam berish uchun ishlab chiqilgan. onCreate()
Qayta ishga tushirishni to'g'ri bajarish uchun faoliyatingiz avvalgi holatini tiklashi muhim. Konfiguratsiya oʻzgarishlari boʻyicha faoliyatingizning UI holatini saqlash va tiklash uchun, obʼyektlar va doimiy xotira kombinatsiyasidan foydalanishingiz mumkin.
Ilovangiz oʻz-oʻzidan ilova holati saqlanib qolgan holda qayta ishga tushishini tekshirish uchun ilovangizdagi turli vazifalarni bajarayotganda konfiguratsiya oʻzgarishlarini (ekran yoʻnalishini oʻzgartirish kabi) kiritishingiz kerak. Ilovangiz istalgan vaqtda foydalanuvchi maʼlumotlari yoki holatini yoʻqotmasdan, konfiguratsiya oʻzgarishlari yoki foydalanuvchi kiruvchi telefon qoʻngʻirogʻini qabul qilganda va arizangiz qabul qilinganidan keyin arizangizga qaytib kelganda kabi hodisalarni hal qilish uchun istalgan vaqtda qayta ishga tushishi mumkin. vayron qilingan.
Biroq, ilovangizni qayta ishga tushirish va katta hajmdagi ma'lumotlarni qayta tiklash qimmatga tushishi va yomon foydalanuvchi tajribasini yaratishi mumkin bo'lgan vaziyatga duch kelishingiz mumkin. Bunday vaziyatda sizda yana ikkita variant mavjud:
1. Konfiguratsiyani o'zgartirish vaqtida ob'ektni saqlang
Konfiguratsiya oʻzgarganda faoliyatingizni qayta ishga tushirishga ruxsat bering, lekin faoliyatingizning yangi namunasiga holatli obyektni olib boring.
Konfiguratsiyani o'zgartirishni o'zingiz hal qiling
Konfiguratsiya o'zgarishlarini boshqarishning yashirin murakkabligi tufayli konfiguratsiya o'zgarishlarini o'zingiz hal qilish tavsiya etilmaydi. Biroq, agar siz afzal qilingan opsiyalardan (onSaveInstanceState(), ViewModels va doimiy xotiradan) foydalanib UI holatini saqlab qola olmasangiz, buning o'rniga ma'lum konfiguratsiya o'zgarishlari paytida tizimning faoliyatingizni qayta ishga tushirishini oldini olishingiz mumkin. Konfiguratsiyalar o'zgarganda ilovangiz qayta qo'ng'iroqni qabul qiladi, shunda kerak bo'lganda faoliyatingizni qo'lda yangilashingiz mumkin.
Do'stlaringiz bilan baham: |