2016-04-04 1 views
-2

Ma situation:Quelque chose au sujet d'un onPostExecute appeler un autre onPostExecute

fonction d'appel d'abord OnPostExecute A

au sein de A, nouvelle autre deuxième OnPostExecute à appeler la fonction B

POURQUOI A se terminer avant la fin B en premier?

Par exemple:

public class ToStart extends otherClass{ 
    public void execute(){ 
     Target A = new Target("A"); 
     A.execute(); 
    } 
    public void print(String target){ 
     Log.v(LOG_TAG, target + " time: " + System.currentTimeMillis()); 
     if(target.equals("A")){ 
      Target B = new Target("B"); 
      B.execute(); 
     } 
    } 
    public class Target extends otherClass { 
     private String target; 

     public Target(String target) { 
      this.target = target; 
     } 

     protected void onPostExecute (String webData){ 
      super.onPostExecute(webData); 
      printTime(target); 
     } 

     protected String doInBackground(String... params){ 
      return super.doInBackground(params); 
     } 
    } 
} 

Résultat:

A time: 1459766772187 
B time: 1459766772209 

Si je veux faire la finition B première et B doit être appelé par A, comment puis-je faire? Toute aide sera appréciée! Merci!

+0

'B doit être appelé par A', quand vous voulez appelé B par A? si vous appelez 'onPostExecute', A est terminé –

+0

Par exemple, un objet est créé dans A. Ensuite, dans B, la valeur de l'objet est modifiée. Enfin, renvoyez l'objet dans A à l'autre classe. La situation est la suivante: après le retour de l'objet dans A, la valeur de cet objet dans B est modifiée. – whatthekey

Répondre

0

Vous devez attendre B:

B.execute().get();