Dasturiy injiniring” yo’nalishi 652-19-guruh talabasi Po’latov Assadulloning



Download 483,13 Kb.
bet1/7
Sana13.07.2022
Hajmi483,13 Kb.
#786189
  1   2   3   4   5   6   7
Bog'liq
Mobil ilovalar polatov asadullo




Muhammad al-Xorazmiy nomidagi
Toshkent Axborot Texnologiyalari Universiteti
Farg‘ona filiali Telekommunikatsiya
texnologiyalari va kasbiy ta’lim fakulteti
Dasturiy injiniring” yo’nalishi
652-19-guruh talabasi
Po’latov Assadulloning
Mobil ilovalarini ishlab chiqish”
fanidan tayyorlagan
Labaratoriya ishi 5


Android Studio muhitida tarmoqli dasturlash. Google Map bilan ishlash
Reja:



  1. AsyncTask

  2. Retrofit

  3. Volley

  4. Google Xaritalar uchun API kalitini olish

  5. Google Maps Flutter plaginini o'rnatish

  6. Asosiy ekranga xaritalar qo'shish

  7. Xarita belgilariga ma'lumot qo'shish

  8. Xulosa

AsyncTask
AsyncTask klassi ko'p vaqt talab qiladigan operatsiyalarni fon oqimiga o'tkazish uchun oddiy va qulay mexanizmni taqdim etadi. Bu sizga voqea ishlovchilarini grafik ip bilan sinxronlashtirishning qulayligini beradi, bu sizning interfeys elementlaringizni vazifaning bajarilishi to'g'risida xabar berish yoki vazifa tugagandan so'ng natijalarni ko'rsatish uchun yangilashga imkon beradi.
AsyncTask interfeysi ipidan to'g'ri va oson foydalanishni ta'minlashga mo'ljallangan. Biroq, eng keng tarqalgan foydalanish interfeysi interfeysga qo'shilish uchun ishlatilgan va bu kontekstni qochqinlarni, o'tkazib yuborilgan qo'ng'iroqlarni yoki konfiguratsiyani o'zgartirishda buzilishlarni keltirib chiqaradi. Shuningdek, u platformaning turli xil versiyalarida nomuvofiq harakatlarga ega, istisnolarni yutib yuboradi doInBackground va Executor to'g'ridan-to'g'ridan foydalanish uchun juda foydali emas.
AsyncTask atrofdagi yordamchi sinf sifatida yaratilgan Threadva Handler umumiy ish zarrachalarini tashkil etmaydi. AsyncTasks-dan qisqa muddatli operatsiyalar uchun foydalanish kerak (ko'pi bilan bir necha soniya.) Agar siz uzoq vaqt davomida ish zarralarini ushlab turishingiz kerak bo'lsa , va , java.util.concurrentkabi paketlar tomonidan taqdim etilgan turli xil API-lardan foydalanish tavsiya etiladi .
Shuni yodda tutingki, AsyncTask birdaniga echim emas. U qisqa muddatli operatsiyalar uchun ishlatilishi kerak - kichik rasmlarni yuklash, fayllar bilan ishlash, ma'lumotlar bazasi operatsiyalari va boshqalar.
Asinxron vazifa fon chizig'ida ishlaydigan va natijasi foydalanuvchi interfeysi satrida e'lon qilingan hisoblash orqali aniqlanadi. Vaqt mos kelmaydigan vazifa 3 umumiy turdagi, deb nomlangan bilan belgilanadi Params, Progressva Result, va 4 qadamlar chaqirdi onPreExecute, doInBackground, onProgressUpdateva onPostExecute.
Kodi:
public class fetchData extends AsyncTask {
String data ="";
String dataParsed = "";
String singleParsed ="";
@Override
protected Void doInBackground(Void... voids) {
try {
URL url = new URL("http://www.json-generator.com/api/json/get/coLPywhGqa?indent=2");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while(line != null){
line = bufferedReader.readLine();
data = data + line;
}

JSONArray JA = new JSONArray(data);


for(int i =0 ;i < JA.length(); i++){
JSONObject JO = (JSONObject) JA.get(i);
singleParsed = "Name:" + JO.get("name") + "\n"+
"Password:" + JO.get("password") + "\n"+
"Contact:" + JO.get("contact") + "\n"+
"Country:" + JO.get("country") + "\n";

dataParsed = dataParsed + singleParsed +"\n" ;


}

} catch (MalformedURLException e) {


e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}

return null;


}

@Override


protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);

MainActivity.data.setText(this.dataParsed);



}
}
AsyncTask ning umumiy turlari
Asenkron vazifa tomonidan ishlatiladigan uchta tur quyidagilar:
1 Params, bajarilgandan so'ng vazifaga yuborilgan parametrlarning turi.
2 Progress, fonni hisoblash paytida e'lon qilingan progress birliklarining turi.
3 Result, fonni hisoblash natijasining turi.
Siz to'g'ridan-to'g'ri AsyncTask klassi bilan ishlay olmaysiz (mavhum sinf), undan meros olishingiz kerak (kengaytiriladi). Amalga oshirishda parametrlar sifatida execute () uslubiga o'tkaziladigan ob'ektlar, taraqqiyot to'g'risida signal berish uchun ishlatiladigan o'zgaruvchilar va natija saqlanadigan o'zgaruvchilar uchun sinflar berilishi kerak. Bunday yozuv formati quyidagicha:
AsyncTask <[Input_Parameter Type], [Progress_Report Type], [Result Type]>
Agar sizga parametrlarni qabul qilish, jarayon haqida ma'lumotni yangilash yoki yakuniy natijani chop etish kerak bo'lmasa, uchta holatda ham Void turini ko'rsating. Parametrlarda faqat umumiy turlardan foydalanish mumkin, ya'ni. int o'rniga Integer-dan foydalaning va hokazo.
Shunga ko'ra, variantlar juda boshqacha bo'lishi mumkin. Mana ulardan bir nechtasi
AsyncTask
AsyncTask
AsyncTask
AsyncTask
Yodda saqlash uchun siz diagrammani ko'rishingiz mumkin.
AsyncTask-da siz avval o'zlashtirishingiz kerak bo'lgan bir necha asosiy usullar mavjud. DoInBackground () usuli talab qilinadi, qolganlari sizning arizangiz mantig'iga asoslanib ishlatiladi.
doInBackground () - bu yangi ish zarrachasida ishlaydigan asosiy usul. UI-ga kirish imkoniyati yo'q. Aynan shu usulda og'ir vazifalar uchun kod joylashgan bo'lishi kerak. Sinfingizni amalga oshirishda aniqlangan parametrlarning to'plamini oladi. Ushbu usul orqa fonda ishlaydi, shuning uchun interfeys elementlari bilan o'zaro bog'liqlik bo'lmasligi kerak. PubProgress () usuli yordamida noqulay kodni bu erga joylashtiring, bu onProgressUpdate () ishlov beruvchiga interfeysga o'zgartirish kiritishga imkon beradi. Fon vazifasi tugagandan so'ng, ushbu usul onPostExecute () ishlov beruvchisi uchun yakuniy natijani qaytaradi va u foydalanuvchi interfeysiga xabar beradi.
onPreExecute () - doInBackground () dan oldin bajarilgan. UI-ga kirish imkoniyati mavjud
onPostExecute () - doInBackground () dan keyin bajarilgan (agar AsyncTask bekor qilingan bo'lsa, uni chaqirish mumkin emas). UI-ga kirish imkoniyati mavjud. Orqa fon vazifangiz tugashi bilanoq foydalanuvchi interfeysini yangilash uchun foydalaning. Ushbu ishlov beruvchi, chaqirilganda, GUI ipi bilan sinxronlashtiriladi, shuning uchun uning ichida interfeys elementlarini xavfsiz o'zgartirishingiz mumkin.
onProgressUpdate (). UI-ga kirish imkoniyati mavjud. Foydalanuvchi interfeysidagi vaqtinchalik yangilanishlarni nashr etish uchun ushbu ishlov beruvchini bekor qiling. Qo'ng'iroq qilinganda, u GUI ipi bilan sinxronlanadi, shuning uchun undagi interfeys elementlarini xavfsiz o'zgartirishingiz mumkin.
PublishProgress () - qidiruv natijalarni ko'rsatish uchun doInBackground () da chaqirilishi mumkin onProgressUpdate ()
bekor qilish () - vazifani bekor qilish
onCancelled () - UI-ga kirish imkoniyati mavjud. Vazifa bekor qilindi. Haddan tashqari yuklangan ikkita versiya mavjud.
UI-ga kirish / kirish imkoni yo'qligi nimani anglatishi haqida qisqacha. Sizning barcha tugmachalaringiz, matn yorliqlaringiz, ImageView (ekranda aks ettirilgan barcha narsalar) foydalanuvchi interfeysining (UI) bir qismidir. Sizning vazifangiz doInBackground () usulida har qanday element chaqirilishining oldini olishdir. Masalan, TextView-ga setText () usuli orqali matnni o'rnatolmaysiz yoki EditText-da shrift rangini o'zgartira olmaysiz. Misollarda siz bunday narsalarni qanday qilishni ko'rasiz.
Izoh: Garchi studiya tegishli usullar uchun super.onPreExecute () va super.onPostExecute () qatorlarini yaratsa ham, ularni o'chirib tashlashingiz mumkin. Superklassning manba kodida usullar hech narsa qilmaydi (bu shunchaki stub), shuning uchun ular Internetdagi ko'plab misollarda chiqarib tashlangan. Bu sizni qo'rqitishiga yo'l qo'ymang.
Uchrashuv uchun oddiy misol. Mushuk tomga ko'tarildi
Keltirilgan usullardan foydalanib oddiy misol yozamiz. Aytaylik, biz tomga mushuklarga chiqish jarayonini tasvirlamoqchimiz. Ularning tomga qanday chiqishlari har doim sir bo'lib kelgan, ammo bu juda qiyin ish, bu alohida ipda ishlatish uchun qulay.
Uyga ko'tarilgan so'zini onPreExecute () usulida aks ettiramiz, doInBackground () usulida og'ir kodni taqlid qilamiz, onPostExecute () usulida Climbed so'zini ko'rsatamiz.
AsyncTask bilan ishlash uchun siz avlodlar sinfini yaratishingiz va unda kerakli usullarni o'zingiz amalga oshirishingizni yozishingiz kerak. Ushbu darsda biz uchta usulni ko'rib chiqamiz:
doInBackground - yangi mavzuda bajariladi, bu erda biz barcha og'ir vazifalarni hal qilamiz. Chunki ip asosiy emas - UI-ga kirish imkoni yo'q.
onPreExecute - doInBackground-dan oldin bajarilgan, interfeysga kirish huquqiga ega
onPostExecute - doInBackground-dan keyin bajarilgan (agar AsyncTask bekor qilingan bo'lsa, yonmaydi - bu haqda keyingi darslarda batafsil ma'lumot), foydalanuvchi interfeysiga kirish huquqiga ega.



Download 483,13 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish