首页 > 系统 > Android > 正文

开发一个好项目:android奔溃日记记录系统

2019-11-07 23:39:47
字体:
来源:转载
供稿:网友

前一篇文章:开发一个好项目:八、创建view 框架地址 dileber android框架 希望大家能多多star一下

构造自己android奔溃文件日志记录。你的项目如果继承自dileber框架,你的项目将具有自动记录奔溃日志的功能。 奔溃日志的代码类为 AndroidCrash.java

public class AndroidCrash{ PRivate static AndroidCrash instance = null; private Thread.UncaughtExceptionHandler mDefaultCrashHandler; private AndroidCrash(){ // get default mDefaultCrashHandler = Thread.getDefaultUncaughtExceptionHandler(); // install Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, final Throwable ex) { // save log saveException(ex, true); showToast( "很抱歉,程序发生异常,即将推出."); try { Thread.sleep(3500); } catch (InterruptedException e) { e.printStackTrace(); } // uncaught mDefaultCrashHandler.uncaughtException(thread, ex); } }); } public static AndroidCrash getInstance() { if (instance == null) { instance = new AndroidCrash(); } return instance; } public final void saveException(Throwable ex, boolean uncaught) { CrashSaver.save(Sapplication.getAppContext(), ex, uncaught); } public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler) { if (handler != null) { this.mDefaultCrashHandler = handler; } } /** * 进行弹出框提示 * * @param msg */ private void showToast( final String msg) { new Thread(new Runnable() { @Override public void run() { Looper.prepare(); UUi.toast(ActivityManager.getCurrentActivity(), msg, Toast.LENGTH_SHORT); Looper.loop(); } }).start(); }}

该类具有自动记录奔溃日志,在崩溃前一秒会进行友好提示。 记录的日志目录位于sd卡目录的“ Android/data/你的包名/log”方便用户进行清理缓存, 记录的文件可以用于上传奔溃日志等等操作: 如下奔溃日志

count: 3 time: 2017-02-24 11:50:44 device: Xiaomi MI 4LTE android: 6.0.1 system: MMB29M battery: 100 % rooted: no ram: 27.0% [1.00 GB] disk: 32.0% [12.00 GB] ver: 1 caught: no network: WIFI java.lang.NullPointerException: Attempt to invoke interface method ...
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表