2010-11-07 4 views
0

Je Asynch dans une classe à part, et je dois changer setText sur certains des TextViewsSyncTask en classe séparée, atteindre mon point de vue

Comment cela possible? OU devrais-je conserver AsyncTask dans ma classe?

private class DownloadImageTask extends AsyncTask<Object, Void, AdModel> { 
    @Override 
    protected AdModel doInBackground(Object... params) { 
     return getAd(); 

    } 

    protected void onPostExecute(AdModel result) { 
     textTitle.setText(result.getTitle()); 

    } 
} 

Répondre

0

DownloadImageTask private class étend AsyncTask {

private TextView text; 

DownloadImageTask(TextView txtToUpdate) { 
    text = txtToUpdate; 
} 

@Override 
protected AdModel doInBackground(Object... params) { 
    return getAd(); 

} 

protected void onPostExecute(AdModel result) { 
    text.setText(result.getTitle()); 
    text = null; 
} 

}

ou ..better ... créer une interface d'écoute, qui vous appellerez à onPostExecute. L'implémentation de l'interface de l'écouteur doit mettre à jour TextView.

2

Vous pouvez créer un constructeur pour votre tâche asynchrone qui prend une référence à votre activité. Vous pouvez faire attention à ne pas divulguer votre référence d'activité en l'annulant dans votre AsyncTask lorsqu'elle est terminée.

Questions connexes