Question

Je les tâches terminées par AsyncTask en arrière-plan. À un certain moment, je dois donner un toast que quelque chose est terminé.

Je l'ai essayé et a échoué parce que je Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

Comment puis-je faire?

Était-ce utile?

La solution

onPostExecute - exécute sur l'interface utilisateur fil ou  publishProgress(); dans votre doinbackground et

protected void onProgressUpdate(Integer... progress) {
}

http://developer.android.com/reference/android/os/ AsyncTask.html

Autres conseils

vous pouvez Toast intérieur doInBackground

ajouter ce code où vous voulez Toast apparaître

runOnUiThread(new Runnable() {
public void run() {

    Toast.makeText(<your class name>.this, "Cool Ha?", Toast.LENGTH_SHORT).show();
    }
});

Vous pouvez également utiliser runOnUiThread méthode pour manipuler votre interface utilisateur à partir de fils de fond.

Si vous voulez utiliser Toast Vous devez utiliser cette méthode: onProgressUpdate ()

protected Integer doInBackground(Void...Params) {
   int check_point = 1;
   publishProgress(check_point);
   return check_point;
}

protected void onProgressUpdate(Integer integers) {
  if(integers == 1) {
    Toast.makeText(classname.this, "Text", 0).show(); 
}

Si vous voulez afficher le Toast du fil de fond que vous devrez appeler runOnUiThread de doInBackground. Je ne crois pas qu'il y ait une autre façon.

Edit: je prends ce retour. Je pense que vous pouvez mettre en œuvre onProgressUpdate, qui fonctionne sur le thread d'interface utilisateur pour afficher les appels Toast et apporter à publishProgress de doInBackground.

Si vous voulez afficher le Toast dans doInBackground, vous pouvez l'utiliser dans la méthode OnPostExecute de AsyncTask.

protected void onPostExecute(String file_url) {    
   Toast.makeText(getApplicationContext(),"Your Message", Toast.LENGTH_LONG).show();

   pDialog.dismiss();//dismiss the progress dialouge
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top