AsyncTask
の実行時にonPostExecute()
メソッドを呼び出すのに問題があります。 onPostExecute()
がオーバーライドされるAsyncTask
を拡張するクラスをセットアップしようとすると、次のビルドエラーが発生します。
「タイプAsyncTaskExampleActivityのメソッドonPostExecute()は、スーパータイプメソッドをオーバーライドまたは実装する必要があります」
私は@Override
注釈。これはビルドエラーを取り除きますが、メソッドはまだ実行されません。誰かが私が見落としているものを指摘するほど親切であれば、私はそれを大いに感謝します。
コード:
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() {
}
}
OnPostExecute()
は引数を取ります(doInBackground()
から返すオブジェクト)。 protected void onPostExecute(Void v)
に変更します。引数を指定しない場合、メソッドシグネチャは一致せず、オーバーライドアノテーションは、このシグネチャでオーバーライドする関数がないことを訴え始めます。
試してください:
クラスで_Source -> Override/Implement methods..
_を右クリックして、onPostExecute()
メソッドを探します。取得した場合、すべてのタイプの引数を持つ完全なメソッドを提供します。
onPostExecute()を上書きしたい場合は、doInBackground()で返されたものをonPostExecute()のオブジェクトとして使用します。
例えば...
@Override
protected void doInBackground(Void...args0){
// your code here...
return value;
}
@Override
protected void onPostExecute(void value){
//code to run
}