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. Linux常用命令行补充——持续更新

    1.查看文件夹大小 =>ls -lht 路径 ls -lht /opt/jars 2.查看文件大小 =>du -sh / du -sh /opt/jars/calllog.csv 3.编辑 ...

  2. POJ 3264 Balanced Lineup 【线段树】

    <题目链接> 题目大意: 求给定区间内最大值与最小值之差. 解题分析: 线段树水题,每个节点维护两个值,分别代表该区间的最大和最小值即可. #include <cstdio> ...

  3. 从URL输入到页面展现到底发生什么

    前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解!   从URL输入到页面展现 总体来说分为以下几个过程: DNS ...

  4. 李宏毅机器学习笔记6:Why deep、Semi-supervised

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  5. 003.Heartbeat MySQL双主复制

    一 基础环境 节点 系统版本 MySQL版本 业务IP 心跳IP Master01 CentOS 7.5 MySQL 5.6 192.168.88.100 192.168.77.100 Master0 ...

  6. JVM之对象分配:栈上分配 & TLAB分配

    1. Java对象分配流程 2. 栈上分配 2.1 本质:Java虚拟机提供的一项优化技术 2.2 基本思想: 将线程私有的对象打散分配在栈上 2.3 优点: 2.3.1 可以在函数调用结束后自行销毁 ...

  7. shell script exit if any command fails

    dd this to the beginning of the script: set -e This will cause the shell to exit immediately if a si ...

  8. Oracle 在字符串中输入单引号或特殊字符

    -- Start 字符串是用单引号括起来的,如果想在字符串中输入单引号该怎么办呢?有两种方法. 方法一:是用两个单引号代表一个单引号 SELECT 'I''m Shangbo' FROM DUAL; ...

  9. windows系统 webstorm安装zencoding方法

    今天在webstorm安装zencoding,下载地址:http://code.google.com/p/zen-coding/downloads/list,下载以下文件: WebIDE and In ...

  10. 835.Hamming距离

    描述 两个整数的Hamming距离是对应比特位不同的个数. 给定两个整数x和y,计算两者的Hamming距离. 0 ≤ x, y < 2^31. 您在真实的面试中是否遇到过这个题? 样例 输入: ...