標籤:android 應用程式 具體步驟 thread public
Android項目中經常閃退(anr)原因有很多種,各種沒有捕獲的異常都會導致項目的崩潰,對於此問題除了在寫代碼是要考慮全面,並對可能出現的Exception進行捕獲,同時也可以設定一個全域異常捕獲的機制來保證你的疏忽(對應該捕獲的異常沒有做處理)。具體步驟如下:
1、首先建立一個Handler 繼承java.lang.Thread.UncaughtExceptionHandler:
//未捕獲異常
@Override
public void uncaughtException(Thread thread, Throwable ex) {
String threadName = thread.getName();
ItktLog.d(threadName);
//這裡我們可以根據thread name來進行區別對待,同時,我們還可以把異常資訊寫入檔案,以供後來分析
}
//單例引用,這裡我們做成單例的,因為我們一個應用程式裡面只需要一個UncaughtExceptionHandler執行個體
private static CrashHandler instance;
private CrashHandler(){}
//同步方法,以免單例多線程環境下出現異常
public synchronized static CrashHandler getInstance(){
if (instance == null){
instance = new CrashHandler();
}
return instance;
}
//初始化,把當前對象設定成UncaughtExceptionHandler處理器
public void init(Context ctx){
Thread.setDefaultUncaughtExceptionHandler(this);
}
2、在自訂Application的oncreate()方法中初始化:
CrashHandler handler = CrashHandler.getInstance();
handler.init(getApplicationContext());
本文出自 “信諾集團技術中心” 部落格,請務必保留此出處http://sinoteam.blog.51cto.com/9115640/1567452
解決Android出現閃退