android中如果出现未捕获异常就会让应用程序crash掉,给用户的提示仅仅是该应用已崩溃,很不友好,自己定义一个UncaughtExceptionHanlder来捕获UI线程上的Exception,使用AlertDialog的方式展示出来,可以方便测试,也可以提升用户体验

package com.tcl.navigator.common;

import java.lang.Thread.UncaughtExceptionHandler;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Looper;
import android.util.Log;
/**
*
* @author peizc 2012-11-23
* 默认处理机制
*/

public class CrashHandler implements UncaughtExceptionHandler {

private static final String FLAG = "CrashHandler";
private Context mContext;

private static CrashHandler INSTANCE = new CrashHandler();
private Thread.UncaughtExceptionHandler mDefaultHandler;

public static CrashHandler getInstance() {
return INSTANCE;
}

public void init(Context ctx) {
mContext = ctx;
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
}

@Override
public void uncaughtException(Thread thread, final Throwable ex) {
// TODO Auto-generated method stub
Log.e(FLAG, ex.toString());
new Thread() {
public void run() {
Looper.prepare();
new AlertDialog.Builder(mContext).setTitle("提示")
.setCancelable(false).setMessage("Error...\n" + ex.toString())
.setNeutralButton("I know",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
ex.printStackTrace();
System.exit(0);
}
}).create().show();
Looper.loop();
};

}.start();
}

}

更多相关文章

  1. Android欢迎界面的实现
  2. Android判断用户名只能为字母、数字和汉字
  3. 11 Weeks of Android: 联系人与身份
  4. Android(安卓)6.0 权限管理工具类
  5. Android下Affinities和Task!!!!!!!!!!!!
  6. 完美PopupWindow(记住用户名模拟)
  7. Android开发1——查找所需要出示权限的内容
  8. Android开发者指南(16) ―― Activity and Task Design
  9. 使用ARouter 时 提示 There is no route matched

随机推荐

  1. Android多个APK共享数据(Shared User ID)
  2. 为Android应用程序读取/dev下设备而提权(
  3. Android开发环境配置简介
  4. 2014-11-6Android学习------Android(安卓
  5. 系出名门Android(10) - HTTP 通信, XML
  6. android笔记
  7. Android(安卓)Studio 使用AIDL
  8. Android上下文Context的那些小事
  9. Android中关于自定义Dialog的使用简介
  10. 转载:Android进程的内存管理分析