Classe externa AsyncTask com ProgressDialog [Atualização: e retornando?]

** Atualizado: (veja abaixo) ** Estou procurando há alguns dias e não consigo encontrar uma resposta direta para isso. Alguns dizem que é possível que alguns digam realizar alguns dizem que não é. Estou ficando louco por isso.

O que eu quero é apenas ter o AsyncTaskTask mostrando uma barra de progresso de uma classe externa. Para fazer isso, estou passando o contexto, como você pode ver na classe principal. Mas o que quer que eu tente receboNullPointerException.

Exemplos de código de trabalho são apreciados. Obrigado

Usando o Android 2.2, a propósito.

a Principal:

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

Atualizar: Eu tenho uma pergunta de acompanhamento: Usando o código acima, é possível retornar um valor do método onPostExecute de volta para a classe principal, de alguma forma? (Desculpe por ser noobish) Eu tentei algo como isto:

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

e, em seguida, um método que retorna uma string. Mas não posso fazer isso porque recebi:

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

O que posso fazer para resolver este problema? Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion