<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android的應用程序的異常處理

      1.自定義一個類(MaApp)繼承Application

      2.在清單文件中的Application選項菜單對應的name屬性中添加MyApp

      3.重寫application中的onCreate方法

      4.自定義一個類(MyCrashHandler) 實現UncaughtExceptionHandler實現其中的uncaughtException方法

      5.將MyCrashHandler 采用單例設計模式 加入同步代碼塊

      6.在MyApp類中的主線程把這個異常捕獲設置進去

      1 Thread.currentThread().setUncaughtExceptionHandler(MyCrashHandler.getInstance(getApplicationContext()));

      7.異常的處理在MyCrashHandler中的uncaughtException中處理

       

      上代碼

      MyApp類

       1 package cn.itcast.crash;
       2 
       3 import java.lang.Thread.UncaughtExceptionHandler;
       4 
       5 import android.app.Application;
       6 
       7 public class MyApp extends Application {
       8     
       9 
      10     /**
      11      * 應用程序 的進程在第一次被創建的時候 執行的方法
      12      */
      13     @Override
      14     public void onCreate() {
      15         
      16         Thread.currentThread().setUncaughtExceptionHandler(MyCrashHandler.getInstance(getApplicationContext()));
      17         
      18         
      19         
      20         super.onCreate();
      21     }
      22 
      23     
      24     
      25 }

      MyCrashHandler類

       1 package cn.itcast.crash;
       2 
       3 import java.io.File;
       4 import java.io.FileOutputStream;
       5 import java.io.PrintWriter;
       6 import java.io.StringWriter;
       7 import java.lang.Thread.UncaughtExceptionHandler;
       8 import java.lang.reflect.Field;
       9 
      10 import android.content.Context;
      11 import android.content.pm.PackageInfo;
      12 import android.os.Build;
      13 import android.os.Environment;
      14 
      15 public class MyCrashHandler implements UncaughtExceptionHandler {
      16     private MyCrashHandler() {
      17     };
      18     private static UncaughtExceptionHandler defaultHandler;
      19     //定義一個系統的默認的異常處理的handler
      20     private static MyCrashHandler myCrashHandler;
      21     private static Context mContext;
      22 
      23     public synchronized static MyCrashHandler getInstance(Context context) {
      24         if (myCrashHandler == null) {
      25             myCrashHandler = new MyCrashHandler();
      26             mContext = context;
      27             defaultHandler = Thread.currentThread().getDefaultUncaughtExceptionHandler();
      28         }
      29         return myCrashHandler;
      30     }
      31 
      32     /**
      33      * 當某一個異常 沒有代碼顯示的捕獲的時候, 系統會調用 默認的異常處理的代碼 處理這個異常
      34      */
      35     @Override
      36     public void uncaughtException(Thread thread, Throwable ex) {
      37         System.out.println("出現了異常,但是被哥捕獲了");
      38         StringWriter wr = new StringWriter();
      39         PrintWriter pw = new PrintWriter(wr);
      40         ex.printStackTrace(pw);
      41         StringBuilder sb = new StringBuilder();
      42 
      43         try {
      44             PackageInfo packinfo = mContext.getPackageManager().getPackageInfo(
      45                     mContext.getPackageName(), 0);
      46             String version = packinfo.versionName;
      47             sb.append("錯誤信息:\n");
      48             sb.append("版本號:" + version + "\n");
      49 
      50             String errorlog = wr.toString();
      51             sb.append(errorlog);
      52             sb.append("\n");
      53 
      54             // 獲取當前手機操作系統的信息.
      55             Field[] fields = Build.class.getDeclaredFields();
      56             for (Field field : fields) {
      57                 field.setAccessible(true);// 暴力反射,可以獲取私有成員變量的信息
      58                 String name = field.getName();
      59                 String value = field.get(null).toString();
      60                 sb.append(name+"="+value+"\n");
      61             }
      62             String time ="time:"+ System.currentTimeMillis();
      63             sb.append(time);
      64             String log = sb.toString();
      65             File file = new File(Environment.getExternalStorageDirectory(),"error.log");
      66             FileOutputStream fos = new FileOutputStream(file);
      67             fos.write(log.getBytes());
      68             fos.flush();
      69             fos.close();
      70             
      71             android.os.Process.killProcess(android.os.Process.myPid());
      72             //調用系統的默認的異常處理方法 處理這個異常
      73             defaultHandler.uncaughtException(thread, ex);
      74             
      75         } catch (Exception e) {
      76             e.printStackTrace();
      77         }
      78 
      79     }
      80 
      81 }

       

      posted @ 2013-01-26 19:35  王世楨  閱讀(493)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 成人午夜大片免费看爽爽爽| 国产av无码专区亚洲av软件| 亚洲成熟女人av在线观看| 麻豆一区二区三区精品视频| 大屁股国产白浆一二区| 亚洲精品成人福利网站| 富裕县| 亚洲国产亚洲综合在线尤物| 亚洲熟妇色xxxxx亚洲| 国产精品午夜福利免费看| 国产不卡一区二区精品| 成人av午夜在线观看| 九九热精品视频免费在线| 精品国产乱码久久久久久口爆网站| 久久天天躁狠狠躁夜夜2020老熟妇| 99riav精品免费视频观看| 在线中文字幕国产一区| 日本福利一区二区精品| 口爆少妇在线视频免费观看| 被拉到野外强要好爽| 人人妻人人狠人人爽天天综合网| 欧美日韩亚洲国产| 国内精品无码一区二区三区| 人妻体内射精一区二区三四| 欧美自拍另类欧美综合图片区| 国产影片AV级毛片特别刺激| 国产精品福利中文字幕| 屯留县| 久久夜色精品国产亚洲a| 久久国产乱子伦免费精品| 色综合久久久久综合体桃花网| jlzz大jlzz大全免费| 日本亚洲欧洲免费无线码| 久久久久综合中文字幕| 国产精品老熟女乱一区二区| 精品国产欧美一区二区五十路| 久久99九九精品久久久久蜜桃| 国偷自产一区二区三区在线视频 | 日韩有码中文在线观看| 热99久久这里只有精品| 中国凸偷窥xxxx自由视频|