CrashHandle捕获崩溃信息
来源:互联网 发布:青岛易亚网络骗局 编辑:程序博客网 时间:2024/05/16 17:38
程序的崩溃是不可避免的,我们有时需要手动捕捉这些崩溃信息,上传服务器。Android提供了扑捉crash的方法。在Thread类中,有一个方法setDefaultUncaughtExceptionHandler;
/** * Set the default handler invoked when a thread abruptly terminates * due to an uncaught exception, and no other handler has been defined * for that thread. * public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh) { defaultUncaughtExceptionHandler = eh; }
当Crash信息发生的时候,系统会会掉UncaughtExceptionHandler的uncaughtException方法,在这个方法中可以获取到新的异常信息。在这里我们可以处理我们的逻辑了。
下面的demo 是在手机端观看奔溃信息:
public class CrashHandle implements Thread.UncaughtExceptionHandler { Thread.UncaughtExceptionHandler mExceptionHandler; private Context mContext; public CrashHandle(Context context) { mContext = context; mExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(this); } @Override public void uncaughtException(Thread t, Throwable e) { //系统默认处理// if (null != mExceptionHandler) {// mExceptionHandler.uncaughtException(t, e);// } StringWriter mStringWriter = new StringWriter(); PrintWriter mPrintWriter = new PrintWriter(mStringWriter); e.printStackTrace(mPrintWriter); String crashContent = mStringWriter.toString(); //可以封装成文件创上传服务器或者先保存在sdcard.我这里是跳转到一个界面,在手机端显示错误信息。 Intent mIntent = new Intent(mContext, BugReportActivity.class); mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); mIntent.putExtra(BugReportActivity.CRASH_CONTENT, crashContent); mContext.startActivity(mIntent); System.exit(0); }}
public class BugReportActivity extends Activity { public static final String CRASH_CONTENT = "crash"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bug_report); TextView mCrash = (TextView) findViewById(R.id.tv_show_crash_message); String message = getIntent().getStringExtra(CRASH_CONTENT); mCrash.setMovementMethod(ScrollingMovementMethod.getInstance()); mCrash.append(message); }}public class AlgorithmApplication extends Application { @Override public void onCreate() { super.onCreate(); Thread.setDefaultUncaughtExceptionHandler(new CrashHandle(this)); }}
不要忘记在manifest添加:BugReportActivity
阅读全文
0 0
- CrashHandle捕获崩溃信息
- iOS 崩溃信息捕获不成功
- Android 全局崩溃日志(CrashHandle)记录
- 捕获程序运行中的崩溃信息 - [windows]
- iOS的捕获已发布应用的崩溃信息
- ios 程序崩溃时捕获到异常信息
- Android 异常信息打印(适用于捕获应用崩溃信息收集)
- Android捕获崩溃异常
- Android崩溃捕获
- Android捕获崩溃异常
- ios捕获崩溃
- ios捕获崩溃
- Android程序崩溃捕获
- Android捕获崩溃异常
- 捕获程序崩溃异常
- windbg捕获崩溃dump
- 安卓应用崩溃信息捕获,并立即重新启动应用---------------android软件开发第四步
- Android中处理崩溃异常 Android捕获全局异常信息并实现上传
- C#多态
- Java DecimalFormat
- FreeMarker四种变量的用法
- matplotlib利用矩阵画三维图
- Java实现棒子老虎鸡小游戏
- CrashHandle捕获崩溃信息
- 使用 OpenOCD 进行单步调试
- ubuntu修改swap分区大小
- C# Dictionary根据Key排序
- 决策树算法详解(内附Python函数)
- c++第八次作业-多继承虚基类
- Spring入门
- 图片三级缓存
- 【Web】CSS3 一些tips总结