2011-09-09 12 views
40

ट्रिगर करने के लिए प्राप्त कर सकता है मुझे AsyncTask चलाते समय कॉल करने के लिए onPostExecute() विधि प्राप्त करने में समस्या हो रही है। जब मैं अपनी कक्षा को AsyncTask तक विस्तारित करने की कोशिश करता हूं जिसमें onPostExecute() ओवरराइड किया गया है तो मुझे निम्न बिल्ड त्रुटि मिलती है।AsyncTask क्लास में OnPostExecute() विधि को ओवरराइड नहीं कर सकता है या इसे

मैं कोशिश की @Override एनोटेशन से छुटकारा पाने की है 'प्रकार AsyncTaskExampleActivity की विधि onPostExecute() ओवरराइड या एक महाप्रकार विधि को लागू करना चाहिए'। यह बिल्ड त्रुटि से छुटकारा पाता है लेकिन विधि अभी भी निष्पादित नहीं होती है। यदि कोई भी इस बात को इंगित करने के लिए बहुत दयालु होगा कि मैं क्या देख रहा हूं तो मैं इसकी सराहना करता हूं।

कोड:

package com.asynctaskexample; 

import android.os.AsyncTask; 

public class AsyncTaskExampleActivity extends AsyncTask<Void, Void, Void> { 

AsyncTaskExampleActivity(){ 
super(); 
    } 

@Override 
protected void onPreExecute() { 
    } 

@Override 
protected Void doInBackground(Void... params) { 
    return null; 
} 

@Override 
protected void onPostExecute() { 
    } 
} 

उत्तर

99

OnPostExecute() एक तर्क (वस्तु आप से doInBackground() वापसी) लेता है। इसे protected void onPostExecute(Void v) पर बदलें। यदि आप तर्क प्रदान नहीं करते हैं, तो विधि हस्ताक्षर मेल नहीं खाते हैं और ओवरराइड एनोटेशन शिकायत करना शुरू कर देता है कि इस हस्ताक्षर के साथ ओवरराइड करने के लिए कोई फ़ंक्शन नहीं है।

22

प्रयास करें:

कक्षा में सही क्लिक Source -> Override/Implement methods.. और onPostExecute() विधि के लिए देखो की कोशिश करें। यह आपको सभी प्रकार के तर्कों के साथ पूर्ण विधि देगा।

+0

वाह बहुत अच्छा है। पारितोषिक के लिए धन्यवाद। – Ben

+0

एंड्रॉइड स्टूडियो में आप मेनू कोड पर जा सकते हैं -> ओवरराइड तरीके (Ctrl + O) –

+0

नए संस्करण पर, राइट क्लिक -> जेनरेट -> विधियों को ओवरराइड करें –

-2

आपको super.onPostExecute() विधि जोड़नी चाहिए। उदाहरण के लिए:

@Override 
protected void onPostExecute(Void nothing) 
{ 
    super.onPostExecute(nothing); 
} 

संपादित करें: दोस्तों, मैं पता नहीं क्यों तुम जवाब downvoting कर रहे हैं। प्रश्नकर्ता में onPostExecute() विधि का तर्क गुम है और इसमें एक सुपरटेप विधि लागू नहीं है। Thats कारण है कि मैंने यह जवाब पोस्ट किया।

+3

उसे इसे क्यों जोड़ना चाहिए? क्या आप कृपया कारण बताएं? – FanaticD

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