14 votes

Terminer l'activité d'appel lorsque AsyncTask est terminé

Mon activité en cours d'appel :

public class Hello extends Activity {  

public void onCreate(Bundle savedInstanceState) {

    MyTask mt = new MyTask(this);
    mt.execute();
}

Maintenant dans MyTask (une classe externe) :

public class MyTask extends AsyncTask {
private Context mContext;

public MyTask(Context context) {

    mContext = context;
}  

//doinbackground, etc

    protected void onPostExecute() {
    mContext.finish();

}

Les autres fonctionnent comme prévu si je supprime mContext.finish() ci-dessus.
Mais si j'appelle mContext.finish(), je reçois une erreur : La méthode finish() n'est pas définie pour le type Context (Eclipse ne montre pas finish() lorsque j'écris mContext, ce qui suggère que j'utilise finish() de manière incorrecte.)

Que dois-je faire pour terminer l'activité en cours d'appel Hello après que MyTask ait terminé la tâche ?

-4voto

Shadow Points 2177

Pouvez-vous essayer

this.finish()

Il semble que c'est à cause de l'appeler en utilisant mContext qu'il dit non défini.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X