Android AsyncTask en classe externe

Je travaille sur une application et j'ai réussi à obtenir le AsyncTask fonctionne bien quand elle est à l'intérieur de la classe.

Maintenant, je suis refactoring du code, afin que les AsyncTask est dans une classe séparée de son propre, mais je me demande, comment puis-je tuer le ProgressDialog et de commencer une nouvelle Activité une fois que la tâche est terminée avec succès? J'ai essayé de démarrer une nouvelle Activité dans le onPostExecute(..) méthode, mais je sais que ça ne marchera pas.


En passant mon thread de l'INTERFACE utilisateur de l'activité comme un argument dans le constructeur de la AsyncTask n'a pas l'air de fonctionner:

//In UI Thread I had
public class Test101 extends Activity {
    private Button btnLogin;
    private LoginTask mLoginTask;
    private Context context=this;
    private Test101 mTest101;

    mLoginTask=new LoginTask(context,mTest101);
    mLoginTask.execute(null);

    //In the AsyncTask I had
    Activity mParentActivity;

    public LoginTask(Context context,Activity act){
        this.ctx=context;
        this.mParentActivity=act;
    }

    onPostExecute(..){
        mParentActivity.callSomeMethod();
    }

    ...
}

J'ai continué à obtenir une NullPointerException, peut-être que je manque quelque chose, mais cela n'a pas fonctionné pour moi.

Un bon nombre de progrès, ce que j'ai à ce jour, dans le onPostExecute(Chaîne) de la méthode, j'ai rejeté l'progressDialog, maintenant j'essaie de transmettre le résultat de la AsyncTask retour à l'Activité dans le thread de l'INTERFACE utilisateur. N'ont pas compris que la partie encore: @Override protected void onPostExecute(String result) { pDialog.rejeter(); //passe la suite de l'AsyncTask retour à l'Activité dans le thread de l'INTERFACE utilisateur???? }

OriginalL'auteur jwesonga | 2010-03-04