Frage

Ich habe Aufgaben von AsyncTask im Hintergrund abgeschlossen. Irgendwann muss ich einen Toast erteilen, dass etwas abgeschlossen ist.

Ich habe versucht, und ich schlug fehl, weil Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

Wie kann ich das tun?

War es hilfreich?

Lösung

OnPostExecute - läuft auf UI-Thread oder  publishProgress(); in Ihrem doinbackground und

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

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

Andere Tipps

Sie können Toast innerhalb doInBackground

fügen Sie diesen Code, wo Sie Toast wollen erscheinen

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

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

können Sie auch runOnUiThread Methode, um Ihre UI von Hintergrund-Threads zu bearbeiten.

Wenn Sie Toast verwenden Sie sollten diese Methode verwenden: 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(); 
}

Wenn Sie den Toast aus dem Hintergrund-Thread angezeigt werden möchten, müssen Sie haben runOnUiThread von doInBackground nennen. Ich glaube nicht, dass es eine andere Art und Weise.

Edit: Ich nehme diesen Rücken. Ich denke, Sie implementieren können onProgressUpdate, die auf dem UI-Thread ausgeführt wird, den Toast und telefonieren zu publishProgress von doInBackground zu zeigen.

Wenn Sie den Toast in doInBackground angezeigt werden sollen, können Sie es in der OnPostExecute Methode von AsyncTask verwenden können.

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

   pDialog.dismiss();//dismiss the progress dialouge
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top