AsyncTask - après l'exécution, comment mettre à jour la vue?
Dans le onCreate() de l'événement d'une Activité, j'ai commencé une AsyncTask pour récupérer des données de Produit à partir d'une base de données. Après cela a été complété avec succès, comment puis-je mettre à jour l'affichage?
Metacode:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.venueviewbasic);
(..)
new GetProductDetails().execute();
class GetProductDetails extends AsyncTask<String, String, String> {
protected String doInBackground(String... params) {
//updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
//Check for success tag
int success;
try {
//Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", vid));
(.. retrieve and parse data and set new textview contents ..)
La textviews etc. ne pas obtenir les mises à jour.
source d'informationauteur richey | 2012-05-13
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez mettre à jour la vue de async après un processus complet dans puis
vous pouvez utiliser
Mais si vous voulez mettre à jour des données lors de l'exécution de processus d'arrière-plan, puis l'utiliser.
Pour l'ex...
pour plus de détails, consultez ce lien
Espérons que cela vous aidera...!
Je suppose que la question est plus sur la façon d'obtenir de l'INTERFACE utilisateur Vue, si la asyncTask est dans un fichier séparé .
Dans ce cas, vous devez passer le contexte de la tâche Asynchrone et de l'utiliser pour obtenir la vue.
Et puis dans votre onPostExecute utilisation
Rappelez-vous que vous ne peut pas mettre à jour la Vue de "doInBackground" puisque ce n'est pas le thread d'INTERFACE utilisateur.
Dans votre
AsyncTask
classe, ajoutez uneonPostExecute
méthode. Cette méthode s'exécute sur le thread de l'INTERFACE utilisateur et peut mettre à jour à tout composant de l'INTERFACE utilisateur.(Le
result
paramètre est la valeur retournée par ladoInBackground
méthode de votre classe.)