Estou utilizando um ProgressDialog enquanto envio informações para um banco de dados, como faço para exibir uma mensagem quando o envio terminar.
Segue como estou exibindo o ProgressDialog
pDialog = ProgressDialog.show(this, "Aguarde", "Enviando informações...", true);
new Thread()
{
public void run()
{
// meu código que envia os dados
}
}.start();
Olá paulinhopamec.
Você precisa usar a classe android.os.Handler, sobrescrevendo o método handleMessage. No Activity você chama a thread passando a sua implementação de Handler e, no método run(), você invoca o método sendMessage do seu Handler.
Fiz um exemplo para ilustrar o que disse:
Activity
import com.andrels.Teste.R;
public class TestesAndroidActivity extends Activity {
private Thread1 thread = null;
private Context context = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ProgressDialog pDialog = ProgressDialog.show(this, "Aguarde...", "Contando");
// Minha implementação de Handler
Handler handler = new Handler(){
//Quando a Thread terminar, o método handleMessage será invocado
@Override
public void handleMessage(Message msg) {
pDialog.dismiss();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Contagem concluída!");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
};
//Aqui passo a handler no construtor da minha Thread
thread = new Thread1(handler);
thread.start();
}
}
Thread
package com.andrels.teste1;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class Thread1 extends Thread{
private Handler handler;
public Thread1(Handler handler) {
this.handler = handler;
}
@Override
public void run() {
int i = 0;
while(i < 1000){
Log.d("var i", i+"");
i++;
}
//Invocando o método que sinalizará o fim da Thread
Message msg = new Message();
handler.sendMessage(msg);
}
}
Espero ter ajudado!
[’]s