2011-10-03 6 views
7

में एक AsyncTask को कुछ भी पास नहीं कर रहा है अगर मैं इसे कुछ भी नहीं गुजर रहा हूं तो मैं AsyncTask को कैसे बढ़ा सकता हूं और कॉल कर सकता हूं?एंड्रॉइड

इसके अलावा, मैं यूआई में गणना परिणाम के लिए एक टेक्स्टव्यू सेट कर रहा हूं।

धन्यवाद, बेन

उत्तर

10

मुझे लगता है कि क्या पूछना था कि कैसे मैं एक AsyncTask कि कोई पैरामीटर नहीं मांगता है लिख सकता हूँ मतलब है। यह चाल परिभाषित करना है कि आप पैरामीटर के रूप में क्या उपयोग करने की उम्मीद करते हैं और अपनी कक्षा के विस्तार में वापसी मूल्य: class MyClass extends AsyncTask<Void, Void, Void> उदाहरण के लिए किसी भी पैरामीटर की अपेक्षा नहीं करता है और कोई भी वापस नहीं लौटाता है। AsyncTask<String, Void, Drawable> एक स्ट्रिंग (या एकाधिक तार) को उम्मीद है और एक Drawable (अपने स्वयं के doInBackground विधि से अपनी ही onPostExecute विधि के लिए) पैरामीटर और onPostExecute परिणाम में परिणाम बिटमैप बिना Async के लिए

+0

धन्यवाद, यह बहुत उपयोगी है। मुझे अपने द्वारा बनाए गए कस्टम व्यू पर कुछ टेक्स्ट सेट करने की आवश्यकता है, (कोई पैरामीटर सेट या लौटा नहीं है) लेकिन मैं यह कैसे कर सकता हूं? –

+0

आप AsyncTask क्लास में एक कन्स्ट्रक्टर बना सकते हैं जिसमें आप दृश्य के संदर्भ को पास करते हैं। यदि आप कक्षा में एक चर में सहेजते हैं तो आप उस चर का उपयोग 'onPostExecute' विधि में कुछ पाठ सेट करने के लिए कर सकते हैं। टेक्स्ट को 'onPostExecute' में सेट करना सुनिश्चित करें, क्योंकि एंड्रॉइड आपको गैर-आईआई थ्रेड (आपके AsyncTask) में UI को बदलने की अनुमति नहीं देता है, सिवाय इसके कि जब आप इसे' onPostExecute' – Lars

19

उदाहरण कार्यान्वयन रिटर्न

/** 
* My Async Implementation without doInBackground params 
* 
*/ 
private class MyAsyncTask extends AsyncTask<Void, Void, Bitmap> { 

    @Override 
    protected Bitmap doInBackground(Void... params) { 

     Bitmap bitmap; 

     .... 

     return bitmap; 
    } 

    protected void onPostExecute(Bitmap bitmap) { 

     .... 
    } 
} 

में आपकी गतिविधि, आपको यह कार्यान्वयन जोड़ना चाहिए:

MyAsyncTask myAsyncTask = new MyAsyncTask(); 
myAsyncTask.execute(); 
+0

में करते हैं, जबकि myAsyncTask.execute को कॉल करते समय, ' पैरामीटर की आपूर्ति करने के लिए यह आवश्यक है ?? –

+0

हां। उस स्थिति पर फ़ंक्शन को पैरामीटर के बिना निष्पादित किया जा सकता है। अगर आपको अधिक जानकारी चाहिए तो कृपया मुझसे संपर्क करें। –

+0

और आपसे संपर्क करने का सबसे अच्छा तरीका क्या है :) –