Olá pessoal!
Fiz uma classe para reportar as exceções não capturadas, conforme mostra nesse site: http://stackoverflow.com/questions/601503/how-do-i-obtain-crash-data-from-my-android-application.
Esta é minha classe:
[code]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());}
}[/code]
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.