Java代码
  1. 、收集所有 avtivity 用于彻底退出应用
  2. 、捕获崩溃异常,保存错误日志,并重启应用
  3. , intent,
  4. , restartIntent);
  5. // 关闭当前应用
  6. finishAllActivity();
  7. finishProgram();
  8. }
  9. };
  10. /**
  11. * 保存错误信息到文件中
  12. *
  13. * @return 返回文件名称
  14. */
  15. private String saveCatchInfo2File(Throwable ex) {
  16. Writer writer = new StringWriter();
  17. PrintWriter printWriter = new PrintWriter(writer);
  18. ex.printStackTrace(printWriter);
  19. Throwable cause = ex.getCause();
  20. while (cause != null) {
  21. cause.printStackTrace(printWriter);
  22. cause = cause.getCause();
  23. }
  24. printWriter.close();
  25. String sb = writer.toString();
  26. try {
  27. DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
  28. String time = formatter.format(new Date());
  29. String fileName = time + ".txt";
  30. System.out.println("fileName:" + fileName);
  31. if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  32. String filePath = Environment.getExternalStorageDirectory() + "/HKDownload/" + packgeName
  33. + "/crash/";
  34. File dir = new File(filePath);
  35. if (!dir.exists()) {
  36. if (!dir.mkdirs()) {
  37. // 创建目录失败: 一般是因为SD卡被拔出了
  38. return "";
  39. }
  40. }
  41. System.out.println("filePath + fileName:" + filePath + fileName);
  42. FileOutputStream fos = new FileOutputStream(filePath + fileName);
  43. fos.write(sb.getBytes());
  44. fos.close();
  45. //文件保存完了之后,在应用下次启动的时候去检查错误日志,发现新的错误日志,就发送给开发者
  46. }
  47. return fileName;
  48. } catch (Exception e) {
  49. System.out.println("an error occured while writing file..." + e.getMessage());
  50. }
  51. return null;
  52. }
  53. // ------------------------------activity管理-----------------------//
  54. // activity管理:从列表中移除activity
  55. public void removeActivity(Activity activity) {
  56. activityList.remove(activity);
  57. }
  58. // activity管理:添加activity到列表
  59. public void addActivity(Activity activity) {
  60. activityList.add(activity);
  61. }
  62. // activity管理:结束所有activity
  63. public void finishAllActivity() {
  64. for (Activity activity : activityList) {
  65. if (null != activity) {
  66. activity.finish();
  67. }
  68. }
  69. }
  70. // 结束线程,一般与finishAllActivity()一起使用
  71. // 例如: finishAllActivity;finishProgram();
  72. public void finishProgram() {
  73. android.os.Process.killProcess(android.os.Process.myPid());
  74. }
  75. }

Android application捕获崩溃异常的更多相关文章

  1. 【转】Android 中处理崩溃异常并重启程序出现页面重叠的问题

    原文地址:http://blog.csdn.net/jiang547860818/article/details/53641113 android开发中经常会遇到程序异常,而已常常会遇到一出现异常AP ...

  2. Android中处理崩溃异常和记录日志(转)

    现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开 ...

  3. Android捕获崩溃异常

    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面.而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里.但平时使用的时候给你闹崩溃,那你就欲哭无泪了. ...

  4. Android中处理崩溃异常

    转自:http://my.eoe.cn/817027/archive/17997.html 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不 ...

  5. Android中处理崩溃异常和记录日志

    大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...

  6. Android中处理崩溃异常CrashHandler

    来源:http://blog.csdn.net/liuhe688/article/details/6584143 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程 ...

  7. 【转】Android中处理崩溃异常

    大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...

  8. Android中处理崩溃异常 (转)

    大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...

  9. Android应用捕获全局异常自定义处理

    [2016-06-30]最新的全局异常处理DRCrashHandler已经集成在DR_support_lib库中 具体请看: https://coding.net/u/wrcold520/p/DR_s ...

随机推荐

  1. HDU3488 Tour KM

    原文链接http://www.cnblogs.com/zhouzhendong/p/8284304.html 题目传送门 - HDU3488 题意概括 给一个n的点m条边的有向图. 然后让你把这个图分 ...

  2. js设置元素不能编辑

    js设置元素不能编辑 $("#startLocation").attr("readOnly",true); js设置元素可以编辑 $("#startL ...

  3. 做生活的有心人——xxx系统第一阶段总结

    2017秋,桃子已经步入大学三年级了,觉得格外幸运 因为现在,有了学习的动力. 如果你和我一样也是在大学中后部分才意识到,自己是个大人了,思维模式开始转变开始融入一些前所未有的认知,觉得自己渺小得如沧 ...

  4. Python 小程序之 恋爱表情包爬取

    虽然恋爱跟我一毛钱关系没有,,但是我还是想爬它 实验爬取网址:http://qq.yh31.com/zjbq/1491124.html # -*- coding: utf-8 -*- # @Time ...

  5. 2013年蓝桥杯省赛C/C++A组真题解析

    1.高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的 ...

  6. 笔记-JS高级程序设计-BOM篇

    BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的 ...

  7. 002.LVS管理工具的安装与使用

    一 安装IPVS 可通过源码安装或yum安装,源码包如下: http://www.linuxvirtualserver.org/software/ipvs.html [root@lvsmaster ~ ...

  8. GCC卡常

    #pragma GCC optimize("Ofast,no-stack-protector") #pragma GCC optimize("-funsafe-loop- ...

  9. STM32——C语言知识点:指针、结构体

    /* ============================================================================ Name : Cyuyanfuxi.c ...

  10. HDU5518 : John's Fences

    求出平面图的对偶图,那么需要选择一些环,使得这些环可以异或出所有环. 对于两个不同的区域,需要用一个代价最小的环把它们区分开,这对应最小割. 那么求出对偶图的最小割树,所有树边之和就是把所有区域都区分 ...