原文地址:http://blog.csdn.net/luck_apple/article/details/7768064


[java] view plain copy
  1. packagecom.numob.david.util;
  2. importjava.io.File;
  3. importjava.io.FileWriter;
  4. importjava.io.IOException;
  5. importjava.lang.Thread.UncaughtExceptionHandler;
  6. importjava.util.Date;
  7. importandroid.os.Environment;
  8. importandroid.util.Log;
  9. /**
  10. *全局处理异常.
  11. *
  12. */
  13. publicclassCrashHandlerimplementsUncaughtExceptionHandler{
  14. /**CrashHandler实例*/
  15. privatestaticCrashHandlerinstance;
  16. /**获取CrashHandler实例,单例模式*/
  17. publicstaticCrashHandlergetInstance(){
  18. if(instance==null){
  19. instance=newCrashHandler();
  20. }
  21. returninstance;
  22. }
  23. @Override
  24. publicvoiduncaughtException(Threadarg0,Throwablearg1){
  25. //ScreenManager.getScreenManager().popActivity(Pay.activity);
  26. //arg0.stop();
  27. //arg0.destroy();
  28. Stringlogdir;
  29. if(Environment.getExternalStorageDirectory()!=null){
  30. logdir=Environment.getExternalStorageDirectory().getAbsolutePath()
  31. +File.separator+"snda"+File.separator+"log";
  32. Filefile=newFile(logdir);
  33. booleanmkSuccess;
  34. if(!file.isDirectory()){
  35. mkSuccess=file.mkdirs();
  36. if(!mkSuccess){
  37. mkSuccess=file.mkdirs();
  38. }
  39. }
  40. try{
  41. FileWriterfw=newFileWriter(logdir+File.separator+"error.log",true);
  42. fw.write(newDate()+"\n");
  43. StackTraceElement[]stackTrace=arg1.getStackTrace();
  44. fw.write(arg1.getMessage()+"\n");
  45. for(inti=0;i<stackTrace.length;i++){
  46. fw.write("file:"+stackTrace[i].getFileName()+"class:"+stackTrace[i].getClassName()
  47. +"method:"+stackTrace[i].getMethodName()+"line:"+stackTrace[i].getLineNumber()
  48. +"\n");
  49. }
  50. fw.write("\n");
  51. fw.close();
  52. }catch(IOExceptione){
  53. Log.e("crashhandler","loadfilefailed...",e.getCause());
  54. }
  55. }
  56. arg1.printStackTrace();
  57. android.os.Process.killProcess(android.os.Process.myPid());
  58. }
  59. }
[java] view plain copy


Activity或是Application中加入这样的代码

[java] view plain copy
  1. CrashHandlercrashHandler=CrashHandler.getInstance();
  2. crashHandler.init(getApplicationContext());


今天只做简单介绍了。


更多相关文章

  1. Android编程学习之抽象类AbsListView用法实例分析
  2. Android app处理全局exception
  3. Android内容提供者ContentProvider用法实例分析
  4. Android UI组件开源实例(二)
  5. Android精灵动画用法实例
  6. Android 总结:自定义键盘实现原理和三种实例详解
  7. android之BroadcastReceiver实例
  8. Android 正则表达式实例
  9. Android 深入研究SQLite实例(一) 之 业务类 sqlite版本管理类

随机推荐

  1. 图解源码 | SpringBoot中自动配置原理
  2. 单例模式你会几种写法?
  3. 一步为你的Springboot应用自定义banner
  4. 工厂模式理解了没有?
  5. 你的Springboot应用到底启动了哪些bean?这
  6. 单例模式的十种写法,你会几个?
  7. 我在一个构造方法中写了30个参数,老板看了
  8. android:windowSoftInputMode属性详解以
  9. 一个GCRoot不可达的对象,会立刻被垃圾回收
  10. 压缩两个集合,方法原来这么多(实用技巧)