Как поднять тост в асинктюзке, мне предложено использовать петли

StackOverflow https://stackoverflow.com/questions/2837676

Вопрос

У меня есть задачи, завершенные асинктюдой в фоновом режиме. В какой-то момент мне нужно выдать тост, что что-то завершено.

Я пробовал, и я потерпел неудачу, потому чтоCaused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

Как я могу это сделать?

Это было полезно?

Решение

OnPostexecute - выполняет на бите UI или publishProgress(); на вашем донбежке и

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

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

Другие советы

Вы можете подражать внутри Doinbackground

Добавьте этот код, где вы хотите тосты появиться

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

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

Вы также можете использовать RunOnuithread Способ манипулировать вашим UI из фоновых нитей.

Если вы хотите использовать тост, вы должны использовать этот метод: onprogressuppdate ()

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(); 
}

Если вы хотите отобразить тост из фоновой нити, вам придется позвонить в RunoNuithRead с Doinbackground. Я не верю, что есть другой путь.

Редактировать: Я беру это обратно. Я думаю, что вы можете реализовать onProgressuppdate, который работает на ните пользовательского интерфейса, чтобы показать тост и совершать звонки на публикациюПрогрогресс с Doinbackground.

Если вы хотите отобразить тост в Doinbackground, вы можете использовать его в методе onPostexute of Asynctask.

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

   pDialog.dismiss();//dismiss the progress dialouge
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top