Android: Appel des méthodes sur le thread d'interface utilisateur à partir de la méthode AsyncTask doInBackground
Je suis en utilisant AsyncTask pour le téléchargement de données à l'INTERFACE utilisateur. j'ai écrit le code pour télécharger des données à partir du serveur dans une autre méthode, et je suis en appelant cette méthode doinBackground. Il va donner à l'erreur, car l'INTERFACE utilisateur des méthodes ne peuvent pas accéder à partir de doInBackground.mais, je veux accéder . toute autre solution est d'accéder à l'INTERFACE utilisateur de la méthode doinBackground.?
source d'informationauteur balu...
Vous devez vous connecter pour publier un commentaire.
Appel
publishProgress()
dansdoInBackground()
. Mettre votre INTERFACE utilisateur-mise à jour de la logique dansonProgressUpdate()
de votreAsyncTask
.onProgressUpdate()
sera appelé sur le thread principal de l'application (un.k.un., Thread d'INTERFACE utilisateur) après l'appel depublishProgress()
. Voici un exemple de projet de le démontrer.Appel runOnUiThread(Runnable action)
plus ici
Comme les autres l'ont souligné, vous pouvez utiliser runOnUiThread. Mais, il semble un peu bizarre que vous voulez faire dans votre doInBackground. Si vous êtes désireux pour indiquer la progression de l'utilisateur que vous souhaitez gérer que dans AsyncTask.onProgressUpdate et appel publishProgress dans votre doInBackground.
Vous pouvez en lire plus à propos de AsyncTask ici: http://developer.android.com/reference/android/os/AsyncTask.html
-Dan
Utilisation
doInBackground()
juste pour tâches :Ensuite, vous pouvez mettre en œuvre
AsyncTask.onPostExecute()
à l'exécution de code pour gérer ces résultats sur le main thread de l'INTERFACE utilisateur de AsyncTaskDe JavaDoc pour
AsyncTask.onPostExecute()
: