Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

Android AsyncTask उदाहरण और स्पष्टीकरण

<घंटा/>

Android AsyncTask बैकग्राउंड थ्रेड पर बैकग्राउंड ऑपरेशन करने और मुख्य थ्रेड पर अपडेट करने जा रहा है। एंड्रॉइड में हम एंड्रॉइड डेवलपमेंट में बैकग्राउंड थ्रेड को मुख्य थ्रेड से सीधे टच नहीं कर सकते हैं। asynctask हमें बैकग्राउंड थ्रेड से मुख्य थ्रेड के बीच संचार करने में मदद करता है।

AsyncTask के तरीके

  • onPreExecute() - बैकग्राउंड ऑपरेशन करने से पहले हमें स्क्रीन पर कुछ दिखाना चाहिए जैसे प्रोग्रेसबार या यूजर को कोई एनिमेशन। हम doInBackground() का उपयोग करके सीधे पृष्ठभूमि संचालन शुरू कर सकते हैं लेकिन सर्वोत्तम अभ्यास के लिए, हमें सभी asyncTask विधियों को कॉल करना चाहिए।

  • doInBackground(Params) - इस मेथड में हमें बैकग्राउंड थ्रेड पर बैकग्राउंड ऑपरेशन करना होता है। इस पद्धति में संचालन किसी भी मुख्य धागे की गतिविधियों या अंशों को नहीं छूना चाहिए।

  • ऑनप्रोग्रेसअपडेट(प्रगति…) - बैकग्राउंड ऑपरेशन करते समय, यदि आप UI पर कुछ जानकारी अपडेट करना चाहते हैं, तो हम इस विधि का उपयोग कर सकते हैं।

  • onPostExecute(परिणाम) - इस पद्धति में हम पृष्ठभूमि संचालन परिणाम के यूआई को अपडेट कर सकते हैं।

Async टास्क में सामान्य प्रकार

  • TypeOfVarArgParams - इसमें निष्पादन के लिए किस प्रकार के पैराम का उपयोग किया जाता है, इसकी जानकारी होती है।

  • प्रगति मूल्य - इसमें प्रगति इकाइयों के बारे में जानकारी होती है। बैकग्राउंड ऑपरेशन करते समय हम onProgressUpdate() का उपयोग करके ui पर जानकारी अपडेट कर सकते हैं।

  • परिणाम मान -इसमें परिणाम प्रकार के बारे में जानकारी होती है।

यह उदाहरण दर्शाता है कि android में asyncTask का उपयोग कैसे करें।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

 <बटन एंड्रॉइड:आईडी ="@ + आईडी / एसिंक टास्क" एंड्रॉइड:टेक्स्ट ="डाउनलोड" एंड्रॉइड:लेआउट_विड्थ ="रैप_कंटेंट" एंड्रॉइड:लेआउट_हाइट ="रैप_कंटेंट" />

उपरोक्त एक्सएमएल में हमने एक बटन बनाया है, जब उपयोगकर्ता उस बटन पर क्लिक करता है जो छवि डाउनलोड करने और छवि को छविदृश्य में जोड़ने के लिए जा रहा है।

चरण 3 - निम्न कोड को src/MainActivity.java

में जोड़ें <पूर्व>पैकेज com.example.andy.myapplication;import android.app.ProgressDialog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Bundle;import android. support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection; आयात java.net.URL; सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है {URL ImageUrl =null; इनपुटस्ट्रीम =शून्य है; बिटमैप बीएमआईएमजी =शून्य; छवि दृश्य छवि दृश्य =शून्य; प्रोग्रेसडायलॉग पी; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); बटन बटन =findViewById (R.id.asyncTask); imageView=findViewById(R.id.image); बटन.सेटऑनक्लिक लिस्टनर (नया व्यू। ऑनक्लिक लिस्टनर () {@ ओवरराइड पब्लिक वॉयड ऑनक्लिक (व्यू वी) {AsyncTaskExample asyncTask=new AsyncTaskExample (); asyncTask.execute("https://www.tutorialspoint.com/images/tp-logo- हीरा.पीएनजी"); } }); } निजी वर्ग AsyncTaskExample का विस्तार AsyncTask<स्ट्रिंग, स्ट्रिंग, बिटमैप> {@Override संरक्षित शून्य onPreExecute() {super.onPreExecute(); पी =नया प्रोग्रेसडिअलॉग (मेनएक्टिविटी। यह); p.setMessage ("कृपया प्रतीक्षा करें ... यह डाउनलोड हो रहा है"); p.setIndeterminate(false); पी.सेट रद्द करने योग्य (झूठा); पी.शो (); } @Override संरक्षित बिटमैप doInBackground (स्ट्रिंग... स्ट्रिंग्स) {कोशिश करें {ImageUrl =नया URL (स्ट्रिंग्स [0]); HttpURLConnection conn =(HttpURLConnection) ImageUrl.openConnection (); conn.setDoInput (सच); conn.connect (); है =con.getInputStream (); बिटमैप फ़ैक्टरी। विकल्प विकल्प =नया बिटमैप फ़ैक्टरी। विकल्प (); options.inPreferredConfig =Bitmap.Config.RGB_565; bmImg =BitmapFactory.decodeStream (है, अशक्त, विकल्प); } कैच (IOException e) { e.printStackTrace (); } बीएमआईएमजी वापसी; } @Override संरक्षित शून्य onPostExecute (बिटमैप बिटमैप) {super.onPostExecute (बिटमैप); अगर (छवि दृश्य! =अशक्त) {p.hide (); imageView.setImageBitmap (बिटमैप); } और { पी.शो (); } } }}

उपरोक्त कोड में हम asyncTask का उपयोग करके छवि डाउनलोड कर रहे हैं और छवि को छविदृश्य में जोड़ रहे हैं।

चरण 4 - निम्नलिखित कोड को मेनिफेस्ट.एक्सएमएल में जोड़ें

 <उपयोग-अनुमति android:name ="android.permission.INTERNET"/> <एप्लिकेशन android:allowBackup ="true" android:icon ="@mipmap/ic_launcher" android:label ="@string/app_name "एंड्रॉइड:राउंडआईकॉन =" @ मिपमैप / आईसी_लॉन्चर_राउंड "एंड्रॉइड:सपोर्ट आरटीएल ="ट्रू" एंड्रॉइड:थीम ="@ स्टाइल / ऐपथीम"> <गतिविधि एंड्रॉइड:नाम ="। मेनएक्टिविटी"> <इरादा-फिल्टर> <कार्रवाई एंड्रॉइड:नाम ="android.intent.action.MAIN" /> <श्रेणी android:name ="android.intent.category.LAUNCHER" />   

उपरोक्त AndroidManifest.xml फ़ाइल में हमने छवि डाउनलोड करने के लिए इंटरनेट एक्सेस करने के लिए इंटरनेट अनुमति जोड़ी है।

आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक को खोलें और टूलबार से रन एक्लिप्स रन आइकन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा।

Android AsyncTask उदाहरण और स्पष्टीकरण

अब डाउनलोड बटन पर क्लिक करें यह यूआई पर प्रगति दिखाएगा और नीचे दिखाए गए अनुसार पृष्ठभूमि में छवि डाउनलोड करें

Android AsyncTask उदाहरण और स्पष्टीकरण

छवि डाउनलोड करने के बाद, यह नीचे दिखाए गए अनुसार UI पर अपडेट हो जाएगा

Android AsyncTask उदाहरण और स्पष्टीकरण


  1. एंड्रॉइड में सबस्क्रिप्ट और सुपरस्क्रिप्ट एक स्ट्रिंग?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में एक स्ट्रिंग को कैसे सबस्क्रिप्ट और सुपरस्क्रिप्ट कर सकता हूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में ज

  1. Android छवि ज़ूम-इन और ज़ूम-आउट देखें?

    यह उदाहरण दर्शाता है कि मैं android ImageView को कैसे ज़ूम इन और ज़ूम आउट कर सकता हूँ। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। <?xml

  1. Android में AsyncTask के लिए टाइमआउट कैसे सेट करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में AsyncTask के लिए टाइमआउट कैसे सेट करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - निम