2012-05-31 3 views
0

comment puis-je appeler une méthode d'une nouvelle intention? Mon but est d'avoir une activité qui démarre une asyncTask. De mon activité principale, je veux donc commencer comme une intention, etSurveiller l'exécution AsyncTask dans une nouvelle intention?

obtenir la tâche afin de vérifier si elle est toujours en cours d'exécution (si foo() est à nouveau exécuté).

class MainActivity extends Activity() { 
    foo() { 
     Intent i = new Intent(this, MyTaskActivity.class); 
     startActivity(i); 

     //AsyncTask task = i.getTask(); ?? 
     //if (task.getStatus() ==...) 
    } 
} 

class MyTaskActivity exteds Activity() { 
    private AsyncTask task; 

    public AsyncTask getTask() { 
     return this.task; 
    } 

    @Override 
    onCreate(..) { 
     task = new MyTask().execute(); 
    } 

    private class MyTask extends AsyncTask<..>() { 

    } 
} 

// solution: appeler cela de l'activité principale:

((MyTaskActivity) getAppContext()).getTask(); 

Répondre

1

Vous pouvez attraper la fin de votre tâche et envoyer une émission attrapée par votre activité principale ou redémarrer votre activité principale (si elle est défini avec un drapeau spécifique dans votre manifeste, l'activité principale devrait être affichée en haut). Une chose est sûre: vous ne pouvez pas contrôler l'activité de l'enfant.

+0

Hm ok. Serait-ce une bonne approche de créer une classe MyTask extends AsyncTask, et l'utiliser par AsyncTask task = new MyTask(). Execute() 'depuis mon' MainActivity'? – membersound

+0

Oui bien sûr! – arnouf

+0

OK, juste pour référence: je viens de découvrir que l'on peut accéder aux méthodes d'autres tâches, voir la mise à jour ci-dessus. – membersound

Questions connexes