Externe AsyncTask classe avec ProgressDialog [mise à Jour: et le retour?]

**Mise à jour: (Voir ci-dessous)**j'ai été en regardant autour pour un couple de jours et ne pouvez pas trouver une réponse claire à cette.
Certains disent qu'il possible de dire à certains de réaliser certains disent qu'il ne l'est pas. Je suis un fou sur cette.

Ce que je veux, c'est juste pour en avoir le AsyncTaskTask montrant une progressbar une classe externe. Pour ce faire, je suis en transmettant le contexte comme vous pouvez le voir dans la classe principale. Mais ce que j'essaie je obtenir NullPointerException.

De travail exemples de code est apprécié. Merci

L'aide d'Android 2.2.

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

Mise à jour:
J'ai une question de suivi: à l'Aide du code ci-dessus, est-il possible de retourner une valeur à partir de la onPostExecute méthode à la classe, en quelque sorte? (Désolé pour beeing noobish)
J'ai essayé quelque chose comme ceci:

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

et puis une méthode que de retourner une chaîne de caractères. Mais je ne peux pas le faire parce que j'ai eu:

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

Que puis-je faire pour remédier à ce problème? Merci.

Je suis intéressé par votre question de suivi. J'ai une situation similaire et je ne sais pas comment récupérer la valeur de retour. Ce que je fais actuellement est que j'ai créé un field variable puis-je attribuer le résultat dans onPostExecute mais je ne suis pas sûr si ce est la bonne façon.

OriginalL'auteur droidgren | 2010-07-27