Подтвердить что ты не робот

Невозможно переопределить метод onPostExecute() в классе AsyncTask или заставить его запускать

У меня возникла проблема с вызовом метода onPostExecute() при запуске AsyncTask. Когда я пытаюсь настроить расширение класса AsyncTask, в котором переопределяется onPostExecute(), я получаю следующую ошибку сборки.

'Метод onPostExecute() типа AsyncTaskExampleActivity должен переопределить или реализовать метод супертипа '

Я попытался избавиться от аннотации @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() {
    }
}
4b9b3361

Ответ 1

OnPostExecute() принимает аргумент (объект, который вы возвращаете из doInBackground()). Измените его на protected void onPostExecute(Void v). Если аргумент метода не указан, сигнатуры метода не совпадают, и аннотирование переопределения начинает жаловаться на отсутствие функции для переопределения этой сигнатуры.

Ответ 2

Попробуйте:

В классе попробуйте щелкнуть правой кнопкой мыши Source -> Override/Implement methods.. и искать метод onPostExecute(). Он даст вам полный метод со всеми типами аргументов, если он получит.

Ответ 3

Вы должны добавить метод super.onPostExecute(). Например:

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