2014-02-17 44 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)); 
}