Внешний класс AsyncTask с ProgressDialog [Обновление: и возвращение назад?]

** Обновлено: (см. Ниже) ** Я искал пару дней и не могу найти прямой ответ на этот вопрос. Некоторые говорят, что возможно, что некоторые говорят, чтобы достигнуть, некоторые говорят, что это не так. Я схожу с ума от этого.

То, что я хочу, это просто иметь AsyncTaskTask, показывающий индикатор выполнения внешнего класса. Для этого я передаю контекст, как вы можете видеть в основном классе. Но что бы я ни старался, я получаюNullPointerException.

Примеры рабочего кода приветствуются. Спасибо

Использование Android 2.2, кстати.

главный:

import android.app.Activity;
import android.os.Bundle;

public class AsyncDemo extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        new AsyncClass(this).execute();
    }
}

AsyncClass.java

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.SystemClock;

public class AsyncClass extends AsyncTask<Void, String, Void> {
    private Context context;
    ProgressDialog dialog = new ProgressDialog(context);

    public AsyncClass(Context cxt) {
        context = cxt;
    }

    @Override
    protected void onPreExecute() {
        dialog.setTitle("Please wait");
        dialog.show();
    }

    @Override
    protected Void doInBackground(Void... unused) {
        SystemClock.sleep(2000);
        return (null);
    }

    @Override
    protected void onPostExecute(Void unused) {
        dialog.dismiss();
    }
}

Обновить: У меня есть дополнительный вопрос: используя приведенный выше код, можно ли каким-то образом вернуть значение из метода onPostExecute обратно в основной класс? (Извините за то, что я нобиш) я пробовал что-то вроде этого:

String result = new AsyncClass(this).execute();

а затем метод, который возвращает обратно строку. Но я не могу этого сделать, потому что я получил:

Type mismatch: cannot convert from AsyncTask<String,Void,Void> to String

Что я могу сделать, чтобы решить эту проблему? Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос