android异常捕获,异常拦截,仿奔溃
来源:互联网 发布:如何在手机上编程 编辑:程序博客网 时间:2024/06/06 13:59
系统异常,空指针,角标越界等都是常见的问题。对于已经上线的应用来说,一旦崩溃了用户体验会变的非常的差,但是平时代码难免会有什么地方判断不到位,那我们为了不让程序崩溃需要将崩溃信息拦截一下就可以了!在一定程度上减少用户体验
这个还可以在控制台上输出错入日志,供大家调试
不多说了,直接上代码
/** * 异常捕获 * */public class NeverCrash { private CrashHandler mCrashHandler; private static NeverCrash mInstance; private NeverCrash(){ } private static NeverCrash getInstance(){ if(mInstance == null){ synchronized (NeverCrash.class){ if(mInstance == null){ mInstance = new NeverCrash(); } } } return mInstance; } public static void init(CrashHandler crashHandler){ getInstance().setCrashHandler(crashHandler); } private void setCrashHandler(CrashHandler crashHandler){ mCrashHandler = crashHandler; new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { for (;;) { try { Looper.loop(); } catch (Throwable e) { if (mCrashHandler != null) {//捕获异常处理 mCrashHandler.uncaughtException(Looper.getMainLooper().getThread(), e); } } } } }); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { if(mCrashHandler!=null){//捕获异常处理 mCrashHandler.uncaughtException(t,e); } } }); } public interface CrashHandler{ void uncaughtException(Thread t,Throwable e); }}
你没有看错,就这么几行代码就可以减少用户异常的感知度!
这个需要在Application中先初始化一下,
代码如下
public class MyApplication extends Application { public static RequestQueue volleyQueue; private static Context context; public static Context getContext() { return context; } @Override public void onCreate() { super.onCreate(); NeverCrash.init(new NeverCrash.CrashHandler() { @Override public void uncaughtException(Thread t, Throwable e) { Log.d("Jenly", Log.getStackTraceString(e));// e.printStackTrace();// showToast(e.getMessage());//这里打印日志 } });}}
好了,各位快去试一下吧。还是很好用的。
阅读全文
0 0
- android异常捕获,异常拦截,仿奔溃
- android异常捕获
- android 捕获全局异常
- Android捕获崩溃异常
- android 捕获全局异常
- Android 捕获全局异常
- android 全局异常捕获
- android捕获全局异常
- Android捕获崩溃异常
- android捕获全局异常
- Android自定义捕获异常
- android 全局异常 捕获
- Android捕获全局异常
- android 捕获全局异常
- Android全局捕获异常
- android 异常捕获
- android 捕获全局异常
- Android异常捕获
- web.xml is missing the currently displayed page contains invalid values
- SpringMVC接收xml/json参数的demo
- php与js方式验证手机号码和邮件地址的合法性,js验证身份证号码
- hibernate-2-curd-xml
- Python中时间格式数据的处理
- android异常捕获,异常拦截,仿奔溃
- 探访SSD数据归属地之NAND闪存
- 学习网站收录
- .Net中的加密解密
- CentOS解决Device eth0 does not seem to be present的问题
- NKOJ-3514 挡光线<2017信息学夏令营第三场 E>
- print 中文输出乱码
- FPD-LINK III
- MSM--Memcached_Session_Manager介绍及使用