Olá pessoal!
Fiz uma classe para reportar as exceções não capturadas, conforme mostra nesse site: [url]http://stackoverflow.com/questions/601503/how-do-i-obtain-crash-data-from-my-android-application[/url].
Esta é minha classe:package br.com.tdta.service.sender;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import br.com.tdta.service.view.MessageDialog;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
/**
*
* @author eliangela
*/
public class ErrorSender implements Thread.UncaughtExceptionHandler {
private Activity activity;
public ErrorSender(Activity activity) {
this.activity = activity;
}
public void enviaErro(final String erro) {
try {
List<NameValuePair> valores = new ArrayList<NameValuePair>();
valores.add(new BasicNameValuePair("erro", erro));
HttpPost httppost = new HttpPost("http://192.168.1.1/android/recebeErros.php");
httppost.setEntity(new UrlEncodedFormEntity(valores));
HttpClient httpclient = new DefaultHttpClient();
httpclient.execute(httppost);
} catch (IOException ex) {
}
}
public void uncaughtException(Thread thread, Throwable trw) {
new Thread(new Runnable() {
public void run() {
MessageDialog.showOkDialog(activity, "Ocorreu um erro.\nClique para finalizar.", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
activity.finish();
}
});
}
}).start();
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
trw.printStackTrace(pw);
pw.close();
enviaErro(sw.toString());
}
}
Essa classe está reportando os erros na URL que eu quero. Mas o problema é que a tela está travando quando aparece a caixa de mensagem.
Se eu não coloco a caixa de mensagem, a tela fecha tranquilo (com o comando activity.finish();), mas se eu coloco a caixa de mensagem, a mensagem aparece, mas a tela trava. O que eu estou fazendo de errado??
Obrigada
! A janela fica tudo preta.