2011-09-09 15 views
40

çalıştırırken çağrı için onPostExecute() yöntemini almada sorun yaşıyorum. onPostExecute()'un geçersiz kılındığı AsyncTask sınıfını genişletmeye çalıştığımda aşağıdaki oluşturma hatasını alıyorum.AsyncTask SınıfındaPostExecute() yöntemini geçersiz kılma veya tetikleme

Ben @Override açıklama kurtulmak çalıştı gelmiş 'türü AsyncTaskExampleActivity yöntemi OnPostExecute() geçersiz kılma veya bir üst tip yöntemini uygulamak gerekir'. Bu, yapı hatasından kurtulur, ancak yöntem hala yürütülmez. Keşke baktığım şeye işaret edecek kadar nazik olsaydım, bunu çok takdir ederdim.

Kodu:

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() { 
    } 
} 

cevap

99

OnPostExecute() bir tartışma (eğer doInBackground() dönmek nesne) alır. protected void onPostExecute(Void v) olarak değiştirin. Argümanı sağlamadıysanız, yöntem imzaları eşleşmez ve geçersiz kılma notu bu imza ile geçersiz kılınacak bir işlev bulunmadığından şikayet etmeye başlar.

22

Dene:

sınıfta

sağ Source -> Override/Implement methods.. tıklayıp onPostExecute() yöntemle aramaya deneyin. Alması gereken her türlü argüman ile tam bir yöntem verecektir.

+0

Vay çok havalı. Bahşiş için teşekkürler. – Ben

+0

Android Studio'da Menü -> Geçersiz Kılma Yöntemleri (Ctrl + O) –

+0

menüsüne gidebilirsiniz. Yeni sürümde, Sağ Tıkla -> Üret -> Geçersiz kılma yöntemleri –

-2

super.onPostExecute() yöntemini eklemelisiniz. Örneğin:

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

DÜZENLEME: Çocuklar sizlere cevabı downvoting neden hiçbir fikrim yok. Soru soran, onPostExecute() yönteminin bir argümanını kaçırıyor ve bunu uygulayan bir supertype yöntemine sahip değil. Bu cevabı yazmamın sebebi buydu.

+3

Neden eklemeli? Lütfen nedenleri açıklar mısınız? – FanaticD