2011-04-09 5 views
2

Je commence ASyncTask du Activity:Comment fermer l'activité de ASyncTask?

public class PrepareRequestTokenActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     new OAuthRequestTokenTask(this, consumer, provider).execute(); 
    } 

Ensuite, selon le résultat de l'exécution AsyncTask je devrais soit fermer cette activité sur PrepareRequestTokenActivity pas.

(Le résultat est connu pour onPostExecute de AsyncTask)

Répondre

5

onPostExecute vous utilisez simplement cette variable pour exécuter finish().

dans votre constructeur garder votre référence activité et appellent finition() dans la méthode onPostExcecute

+1

Cela n'a pas fonctionné pour moi, pouvez-vous s'il vous plaît jeter un oeil ici: http://stackoverflow.com/questions/8623823/finish-the-calling-activity-when-asynctask-completes et suggérer quelque chose. Merci d'avance. –

+1

(Contexte (activité)) .finish(); –

3

Si vous travaillez à l'intérieur onPostExecute, et vous êtes asyncTask() classe interne à votre activité; simplement appeler MyClassName.this.finish(), ou quelque chose de semblable, devrait fonctionner très bien? Le onPostExecute(), je crois, a une portée d'interface utilisateur.

+0

Mon AsyncTask est en classe externe. On dirait que l'approche de Sunil fonctionne. –