2012-10-03 11 views
5

क्या कोई मुझे बता सकता है कि यहां क्या गलत हो रहा है?AsyncTask <स्ट्रिंग, शून्य, शून्य> कैसे काम करता है?

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

    public Void doInBackground(String... params) { 
     //tasks 
     return; //error occurs here! 
    } 

    public void onPostExecute(Void result) { 
     //codes 
    } 
} 

उपर्युक्त वर्ग वापसी मूल्यों पर निर्भर नहीं है। तो onPostExceute() बस वहां लिखे गए कोड निष्पादित करें।

अग्रिम धन्यवाद!

+0

'Void' और' void' अलग, का उल्लेख कर रहे हैं http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android/ os/AsyncTask.java –

+0

इस साइट को देखें, 1. [असिंक्रोनस टास्क_ट्यूटोरियल] (http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/) 2. [उदाहरण के साथ असिंक्रोनस टास्क का स्पष्टीकरण] (http://labs.makemachine.net/2010/05/android-asynctask-example/) – Aerrow

उत्तर

15

बस शून्य वापस करें।

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

    public Void doInBackground(String... params) { 
     //tasks 
     return null; 
    } 

    public void onPostExecute(Void result) { 
     //codes 
    } 
} 
6

मुझे लगता है कि आपको "वापसी शून्य" का उपयोग करना होगा; केवल "वापसी" के बजाय, Void सामान्य "शून्य" मान के आसपास एक कक्षा है।

0

doInBackGround रिटर्न शून्य मान

public class BackgroungTask extends AsyncTask<String, Void, Void> { 
.... 
.... 
} 

जांच इस Android dev doc Andorid

5

doInBackGround में वापसी अशक्त में अतुल्यकालिक कार्य के लिए, Void के रूप में एक वस्तु है (= शून्य नहीं है) ..

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

public Void doInBackground(String... params) { 
    //tasks 
    return null; //error occurs here! 
} 

public void onPostExecute(Void result) { 
    //codes 
} 
} 
+1

आपको यह भी समझा जाना चाहिए कि ** आपको ** क्यों 'शून्य' वापस करना है। – Luksprog

+0

@Luksprog से सहमत हैं, यह कोई जवाब नहीं है। –

+0

यह इस तरह से काम करता है! खैर, अगर यह कोई जवाब नहीं है, तो सही क्या है? – Renjith

4

AsyncTask इस

की तरह काम करता है

onPreExecute -> doInBackGround -> onPostExecute

उपेक्षा progressUpdates आदि, जैसे ही doInBackGround पूरा हो गया है, नियंत्रण onPostExecute को जाता है। एक साधारण वापसी इस प्रवाह को बाधित करता है जिससे त्रुटि उत्पन्न होती है। इसे हल करने के लिए, के साथ प्रतिस्थापित करें इसके शून्य के बाद से बदलें। रिटर्न कथन पैरामीटर कोपोस्टएक्सक्यूट पर पैरामीटर के रूप में पास किया जाता है, जहां आप इसका उपयोग कर सकते हैं यह देखने के लिए कि यह सफल रहा है।