我在我的应用中添加了一个新的偏好设置,允许用户选择退出分析报告。我在我的应用程序中使用Crashlytics和Answers by Fabric。
我在onCreate中有这个代码:
每次我想发送一个事件,我就这样做:
if (PreferenceHelper.getAllowAnalytics(context)) {
Fabric.with(this, new Crashlytics());
} else {
//no crash or answers to be sent
}
}
当用户允许时,这很有效。
当用户决定不允许分析时,我该如何处理Answers.getInstance().logCustom(new CustomEvent("test event"));
?
答案 0 :(得分:2)
可以在不使用if / else:
的情况下执行此类操作CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(!PreferenceHelper.getAllowAnalytics(context)).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());
这样,如果你的getAllowAnalytics方法返回false,那么Fabric / Crashlytics将被禁用,否则它将被启用。
答案 1 :(得分:0)
您可以将所有调用的Answers.getInstance包装在一个检查您的首选项的新类中,如果没有启用则不执行任何操作? IE:而不是Answers.getInstance()。logCustom()WrappedAnswers.getInstance()。logCustom()。包装好的答案会在logCustom()
中进行if / else检查