久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: Android Force Close和ANR等異常處理方法 [打印本頁]

作者: 51hei小林    時(shí)間: 2016-9-25 11:03
標(biāo)題: Android Force Close和ANR等異常處理方法
對(duì)android應(yīng)用而言最常出現(xiàn)的異常是Force close和ANR(Application is not response).

對(duì)于這兩類錯(cuò)誤而言,應(yīng)用是可以進(jìn)行相關(guān)處理的。

一 Forceclose這類問題主要通過Thread.UncaughtExceptionHandler這個(gè)類來捕獲異常。通過實(shí)現(xiàn)類里面的方法uncaughtException來實(shí)現(xiàn)應(yīng)用在捕獲到異常后進(jìn)行相關(guān)的處理。一般這里處理基本放在應(yīng)用的Application類中。為了方便大家進(jìn)行相關(guān)處理,我這里寫了個(gè)類,大家直接在Application回調(diào)即可。


  1. new ExceptionHandler(mContext).setFCListener(new ExceptionHandler.FCListener() {
  2.             
  3.             @Override
  4.             public void onFCDispose(Throwable paramThrowable) {
  5.                 Log.d(TAG, onFCListerner enter!!!);
  6.                 new Thread(){
  7.                     public void run(){
  8.                         Looper.prepare();
  9.                         Toast.makeText(mContext, APP is Force Close do what you want!, Toast.LENGTH_LONG).show();
  10.                         Looper.loop();
  11.                     }
  12.                 }.start();
  13.             }
  14.         });
復(fù)制代碼



同樣的對(duì)于ANR問題,應(yīng)用也可以做相關(guān)處理。對(duì)ANR,我們可以這樣處理。通過一個(gè)看門狗來實(shí)時(shí)的檢測(cè)主線程,一旦主線程發(fā)生阻塞,則通知Application 做相關(guān)處理。

主要方法是在線程中每隔一段時(shí)間(Activity一般是5S,廣播一般是10S),向主線程發(fā)送一個(gè)messager,使計(jì)數(shù)器加1,如果到點(diǎn)沒有加1,則表明主線程阻塞。


  1. @Override
  2.     public void run() {
  3.         setName(|ANR-WatchDog|);

  4.         int lastTick;
  5.         while (!isInterrupted()) {
  6.             lastTick = mTick;
  7.             mUIHandler.post(tickerRunnable);
  8.             try {
  9.                 Thread.sleep(mTimeoutInterval);
  10.             }
  11.             catch (InterruptedException e) {
  12.                 mInterruptionListener.onInterrupted(e);
  13.                 return ;
  14.             }

  15.             // If the main thread has not handled _ticker, it is blocked. ANR.
  16.             if (mTick == lastTick) {
  17.                 ANRError error;
  18.                 if (mNamePrefix != null)
  19.                     error = ANRError.New(mNamePrefix, mLogThreadsWithoutStackTrace);
  20.                 else
  21.                     error = ANRError.NewMainOnly();
  22.                 mAnrListener.onAppNotResponding(error);
  23.                 return ;
  24.             }
  25.         }
  26.     }
復(fù)制代碼
  1. private final Runnable tickerRunnable = new Runnable() {
  2.        @Override public void run() {
  3.            mTick = (mTick + 1) % 10;
  4.        }
  5.    };
復(fù)制代碼








歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 夜夜操av | 综合久久99 | 国产精品一区二区三区免费 | 日本a级大片 | 涩色av| 日韩一区二区在线观看视频 | 成人免费毛片aaaaaa片 | 国产一区二区免费在线观看 | 午夜视频免费看 | 一区二区三区四区视频在线观看 | 久久久综合视频 | 国产午夜视频 | 中文字幕在线看片 | 国产一区二区福利 | 欧美日韩亚洲一区二区三区 | 小日子的在线观看免费第8集 | 久久免费视频观看 | 中文字字幕在线 | 狠狠躁夜夜躁人爽 | 亚洲人天堂 | a视频| 综合久久久 | 奇米网888 | 伊人网在线播放 | 亚洲最新网址 | 国产精品一区久久 | 亚洲免费久久 | av片在线免费观看 | 免费在线国产 | 一级片免费视频 | 亚洲日本中文字幕 | 日日操夜夜爽 | 日韩一区二区三区四区 | 深夜福利在线播放 | 欧美激情视频一区二区 | av黄色在线观看 | 狠狠干狠狠操 | 在线视频91| 毛片资源| 国产人成一区二区三区影院 | 午夜视频 |