2014-02-17 41 views
4

我正在開發Android應用程序,該應用程序與MixPanel進行分析整合,BugSnag進行錯誤監控。MixPanel進行錯誤監控

最近我們在應用程序中發現崩潰,並且我們無法找到崩潰的根本原因,我們添加了代碼以在發生錯誤時重新啓動應用程序。隨着重啓,我們也開始跟蹤錯誤發生的次數。我的偏好是同樣使用Bugsnag,但團隊中的一些人問我們爲什麼不能使用MixPanel,因爲我們可以使用發送給MixPanel的參數輕鬆過濾事件。但我覺得MixPanel不應該被用作專門用於跟蹤用戶事件。由於用戶事件,崩潰和重啓都不會發生,它只是隨機發生。

我想聽聽來自社區的建議/想法。

回答

0

你可以使用Thread.setDefaultUncaughtExceptionHandler(...)Application.onCreate設置自定義Thread.UncaughtExceptionHandler跟蹤到MixPanel所有UncaughtExceptions(崩潰),並設置屬性,如:

public class MyExceptionHandler implements UncaughtExceptionHandler 
{ 
    private UncaughtExceptionHandler defaultExceptionHandler; 

    public MyExceptionHandler (UncaughtExceptionHandler defaultExceptionHandler) 
    { 
     this.defaultExceptionHandler = defaultExceptionHandler; 
    } 

    public void uncaughtException(Thread thread, Throwable exception) 
    { 
     mMixPanelInstance.trackEvent("APP_CRASH", null); 
     if (defaultExceptionHandler != null) 
     { 
      defaultExceptionHandler.uncaughtException(thread, exception); 
     } 

    } 
} 


MyApplication.onCreate(...) 
{ 
    UncaughtExceptionHandler currentHandler = Thread.getDefaultUncaughtExceptionHandler(); 

    Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(currentHandler)); 
}