我正在开发一个Android应用程序,它与MixPanel集成用于分析,BugSnag用于错误监控。
最近我们发现应用程序崩溃了,因为我们找不到崩溃的根本原因,我们在发生错误时添加了重启应用程序的代码。随着重启,我们还开始跟踪错误发生的次数。我的偏好是使用Bugsnag,但团队中有几个人问为什么我们不能使用MixPanel,因为我们可以使用我们发送给MixPanel的参数轻松过滤掉事件。但我觉得MixPanel不应该被用作专门用于跟踪用户事件的。由于用户事件,崩溃和重启都不会发生,它只是随机发生的。
我想听听社区关于同样的建议/想法。
答案 0 :(得分:0)
您可以在Thread.setDefaultUncaughtExceptionHandler(...)
中使用Application.onCreate
来设置跟踪MixPanel所有UncaughtExceptions(崩溃)的自定义Thread.UncaughtExceptionHandler
,并设置以下属性:
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));
}