2012-11-26 15 views
5

मैं कुछ परियोजनाओं के लिए इस AsyncTask का उपयोग कर रहा हूं, लेकिन अभी भी <String, Void, String> का मतलब क्या नहीं है। क्या इसका मतलब अनुपूरक तरीकों के पैरामीटर प्रकार हैं? क्या कोई ऑर्डर है (विधि क्रमशः स्ट्रिंग, शून्य, स्ट्रिंग के अनुरूप क्या है)?AsyncTask <स्ट्रिंग, शून्य, स्ट्रिंग> जेनेरिक प्रकार। एंड्रॉइड

+0

http://stackoverflow.com/questions/13238150/java-generics-what-is-this-syntax-for –

उत्तर

6

यह in docs वर्णित:

android.os.AsyncTask<Params, Progress, Result> 

तीन एक अतुल्यकालिक कार्य के द्वारा प्रयुक्त प्रकारों निम्नलिखित हैं:

Params, the type of the parameters sent to the task upon execution. 
Progress, the type of the progress units published during the background computation. 
Result, the type of the result of the background computation. 

आप इनमें से किसी एक की जरूरत नहीं है, पारित Void (लेकिन हमेशा 3 प्रकार होना चाहिए)

7

Android Docs AsyncTask पृष्ठ से:

android.os.AsyncTask<Params, Progress, Result> 

तीन एक अतुल्यकालिक कार्य के द्वारा प्रयुक्त प्रकारों निम्नलिखित हैं:

पैरामीटर, निष्पादन पर काम करने के लिए भेजा मानकों के प्रकार।

प्रगति, पृष्ठभूमि गणना के दौरान प्रकाशित प्रगति इकाइयों का प्रकार।

परिणाम, पृष्ठभूमि गणना के परिणाम का परिणाम।

अब सरल शब्दों में मेरी समझ:

पैरामीटर: (अपने मामले स्ट्रिंग में) पैरामीटर कि AsyncTask लेता है। (अपने मामले शून्य में) प्रगति के प्रकार है: आप इस पारित करने के लिए जब आप प्रगति execute विधि

फोन है। शून्य का मतलब है कि आप इसका उपयोग नहीं कर रहे हैं। यदि यह कहता है, इंटीजर, आप 10, 20, 30 जैसे मानों का उपयोग कर सकते थे ... और स्क्रीन पर प्रगति पट्टी दिखाने के लिए इनका उपयोग करें।

परिणाम: (आपके मामले में स्ट्रिंग) AsyncTask परिणाम के रूप में देता है। आप एक स्ट्रिंग लौट रहे हैं। आप जो भी ऑब्जेक्ट चाहते हैं उसे वापस कर सकते हैं।

तो बस डालें, यह कुछ हद तक एक विधि की तरह है जहां परम पैरामीटर हैं, परिणाम वापसी प्रकार है और प्रगति आपको प्रसंस्करण प्रगति की स्थिति बताती है।

आगे समझ के लिए this tutorial देखते हैं, यह भी एक ही पृष्ठ से बोली सहायक हो सकता है:

AsyncTask<TypeOfVarArgParams, ProgressValue, ResultValue>

TypeOfVarArgParams इनपुट के रूप में doInBackground() विधि में पारित हो जाता, ProgressValue प्रगति की जानकारी के लिए प्रयोग किया जाता है और परिणाम Value doInBackground() विधि से वापस किया जाना चाहिए और पैरामीटर के रूप में पर पोस्ट करें। AsyncTask में

1

प्रथम पैरामीटर पैरामीटर doInBackground में पारित होने के लिए के लिए संदर्भित करता, 2 पैरामीटर onProgressUpdate में पारित किया जा रहा है और 3 पैरामीटर onPostExecute में पारित किया जाना है। हम कार्यक्षमता के अनुसार उपयुक्त किसी भी डेटा प्रकार का उपयोग कर सकते हैं। पैरामीटर प्रकार (स्ट्रिंग, इंटीजर, स्ट्रिंग) के साथ कॉल के लिए एक उदाहरण नीचे दिया गया है।

private class MyTask extends AsyncTask<String, Integer, String> 
     { 
      protected String doInBackground(String... u) 
      { 
       // do something in background 
       return null;  
      } 
      protected void onPreExecute() 
      {    
       // do something before start 
        } 
      public void onProgressUpdate(Integer... args) 
      {  

      }      
      protected void onPostExecute(String result) 
      {         
           // do something after execution 

      } 
     } 
संबंधित मुद्दे