导语:最近实在是太忙了,没有怎么更新公众号,也没有怎么认真去写一些内容,在这里先给关注我的朋友说一声抱歉,可能在接下来的一段时间,还是很忙,但是我会争取抽空多分享一下技术文章,给大家看,共同进步,也希望有能力的人可以一起出来分享。
Application:用来管理应用程序的全局状态。在应用程序启动时Application会首先创建,然后才会根据情况来启动相应的Activity和Service。对于未捕获异常的处理器我们也可以在这里实现。
UncaughtExceptionHandler:线程未捕获异常处理器,用来处理未捕获异常。如果程序出现了未捕获异常,默认会弹出系统中强制关闭对话框。我们需要实现此接口,并注册为程序中默认未捕获异常处理。这样当未捕获异常发生时,就可以做一些个性化的异常处理操作。
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.lang.Thread.UncaughtExceptionHandler; public class CrashHandler implements UncaughtExceptionHandler{ private static CrashHandler crashHandler; @Override public void uncaughtException(Thread thread, Throwable ex) { // TODO Auto-generated method stub if (crashHandler != null) { try { //将crash log写入文件 FileOutputStream fileOutputStream = new FileOutputStream("/mnt/sdcard/crash_log.txt", true); PrintStream printStream = new PrintStream(fileOutputStream); ex.printStackTrace(printStream); printStream.flush(); printStream.close(); fileOutputStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //设置默认处理器 public void init() { Thread.setDefaultUncaughtExceptionHandler(this); } private CrashHandler() {} //单例 public static CrashHandler instance() { if (crashHandler == null) { synchronized (crashHandler) { crashHandler = new CrashHandler(); } } return crashHandler; } }
第三步:在application中调用异常的捕获功能
import android.app.Application; public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); CrashHandler crashHandler = CrashHandler.getInstance(); crashHandler.init(this); } }
第四步:application在清单文件中的注册
application和activity一样都需要在清单文件中进行注册,只不过我们在建项目的时候,开发工具会在项目中自动注册application,而我们自己定义的则需要自己去手动把默认的给替换掉。
<application android:name=".MainApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ... </application>讲到这里就介绍完了,如果你把这些代码插入进去了,等你程序再崩溃的时候,就会给你自动记录了,当然上面讲的这些只是给你记录到本地,并存放成文件了,如果想上传到服务器,还请同学们自己动手,把文件进行上传吧!上传文件到服务器我想同学们应该都会吧!
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦