Pergunta

Eu tenho tarefas concluídas pela assíncena em segundo plano. Em algum momento, preciso emitir um brinde que algo esteja concluído.

Eu tentei e falhei porqueCaused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

Como eu posso fazer isso?

Foi útil?

Solução

OnPostexecute - Executa no tópico da interface do usuário ou publishProgress(); no seu doinbackground e

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

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

Outras dicas

você pode brindar dentro do doinbackground

Adicione este código onde você deseja brindar

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

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

Você também pode usar runonuithread Método para manipular sua interface do usuário de threads de segundo plano.

Se você quiser usar o Toast, use este método: 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(); 
}

Se você deseja exibir a torrada do thread em segundo plano, precisará ligar para o Runonuithread do Doinbackground. Não acredito que haja outra maneira.

EDIT: Eu pego isso de volta. Eu acho que você pode implementar o OnProgressUpdate, que é executado no tópico da interface do usuário, para mostrar a torrada e fazer chamadas para publicar progressos do Doinbackground.

Se você deseja exibir a torrada no Doinbackground, poderá usá -la no método OnPostexecute de assíncrogem.

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

   pDialog.dismiss();//dismiss the progress dialouge
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top