- package com.numob.david.util;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.lang.Thread.UncaughtExceptionHandler;
- import java.util.Date;
- import android.os.Environment;
- import android.util.Log;
- /**
- * 全局处理异常.
- *
- */
- public class CrashHandler implements UncaughtExceptionHandler {
- /** CrashHandler实例 */
- private static CrashHandler instance;
- /** 获取CrashHandler实例 ,单例模式*/
- public static CrashHandler getInstance() {
- if (instance == null) {
- instance = new CrashHandler();
- }
- return instance;
- }
- @Override
- public void uncaughtException(Thread arg0, Throwable arg1) {
- // ScreenManager.getScreenManager().popActivity(Pay.activity);
- // arg0.stop();
- // arg0.destroy();
- String logdir ;
- if(Environment.getExternalStorageDirectory()!=null){
- logdir = Environment.getExternalStorageDirectory().getAbsolutePath()
- + File.separator + "snda"+File.separator+"log" ;
- File file = new File(logdir);
- boolean mkSuccess;
- if (!file.isDirectory()) {
- mkSuccess = file.mkdirs();
- if (!mkSuccess) {
- mkSuccess = file.mkdirs();
- }
- }
- try {
- FileWriter fw = new FileWriter(logdir+File.separator+"error.log",true);
- fw.write(new Date()+"\n");
- StackTraceElement[] stackTrace = arg1.getStackTrace();
- fw.write(arg1.getMessage() + "\n");
- for (int i = 0; i < stackTrace.length; i++) {
- fw.write("file:" + stackTrace[i].getFileName() + " class:" + stackTrace[i].getClassName()
- + " method:" + stackTrace[i].getMethodName() + " line:" + stackTrace[i].getLineNumber()
- + "\n");
- }
- fw.write("\n");
- fw.close();
- } catch (IOException e) {
- Log.e("crash handler", "load file failed...", e.getCause());
- }
- }
- arg1.printStackTrace();
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- }
package com.numob.david.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.Thread.UncaughtExceptionHandler; import java.util.Date; import android.os.Environment; import android.util.Log; /** * 全局处理异常. * */ public class CrashHandler implements UncaughtExceptionHandler { /** CrashHandler实例 */ private static CrashHandler instance; /** 获取CrashHandler实例 ,单例模式*/ public static CrashHandler getInstance() { if (instance == null) { instance = new CrashHandler(); } return instance; } @Override public void uncaughtException(Thread arg0, Throwable arg1) { // ScreenManager.getScreenManager().popActivity(Pay.activity); // arg0.stop(); // arg0.destroy(); String logdir ; if(Environment.getExternalStorageDirectory()!=null){ logdir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "snda"+File.separator+"log" ; File file = new File(logdir); boolean mkSuccess; if (!file.isDirectory()) { mkSuccess = file.mkdirs(); if (!mkSuccess) { mkSuccess = file.mkdirs(); } } try { FileWriter fw = new FileWriter(logdir+File.separator+"error.log",true); fw.write(new Date()+"\n"); StackTraceElement[] stackTrace = arg1.getStackTrace(); fw.write(arg1.getMessage() + "\n"); for (int i = 0; i < stackTrace.length; i++) { fw.write("file:" + stackTrace[i].getFileName() + " class:" + stackTrace[i].getClassName() + " method:" + stackTrace[i].getMethodName() + " line:" + stackTrace[i].getLineNumber() + "\n"); } fw.write("\n"); fw.close(); } catch (IOException e) { Log.e("crash handler", "load file failed...", e.getCause()); } } arg1.printStackTrace(); android.os.Process.killProcess(android.os.Process.myPid()); } }
</pre><p></p><p><span lang="EN-US" style="text-align: justify; font-family: Calibri,sans-serif; font-size: 14px;">Activity或是Application</span><span style="text-align: justify; font-family: 宋体; font-size: 14px;">中加入这样的代码</span><span lang="EN-US" style="text-align: justify; font-family: Calibri,sans-serif; font-size: 14px;"> :</span></p><p><span lang="EN-US" style="text-align: justify; font-family: Calibri,sans-serif; font-size: 14px;"></span><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a target=_blank title="view plain" class="ViewSource" href="http://blog.csdn.net/luck_apple/article/details/7768064#">view plain</a><a target=_blank title="copy" class="CopyToClipboard" href="http://blog.csdn.net/luck_apple/article/details/7768064#">copy</a><a target=_blank title="print" class="PrintSource" href="http://blog.csdn.net/luck_apple/article/details/7768064#">print</a><a target=_blank title="?" class="About" href="http://blog.csdn.net/luck_apple/article/details/7768064#">?</a></div></div><ol class="dp-j"><li class="alt"><span><span>CrashHandler crashHandler = CrashHandler.getInstance(); </span></span></li><li><span>crashHandler.init(getApplicationContext()); </span></li></ol></div><pre class="java" style="display: none;" name="code">CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(getApplicationContext());
今天只做简单介绍了。