Android 根据用户设置禁用Crashlytics/Answers

Android 根据用户设置禁用Crashlytics/Answers,android,crashlytics,twitter-fabric,Android,Crashlytics,Twitter Fabric,我在我的应用程序上添加了一个新的首选项,允许用户选择退出分析报告。我正在我的应用程序中使用Crashlytics和Fabric的答案 我在onCreate中有以下代码: if (PreferenceHelper.getAllowAnalytics(context)) { Fabric.with(this, new Crashlytics()); } else { //no crash or answers to be sent

我在我的应用程序上添加了一个新的首选项,允许用户选择退出分析报告。我正在我的应用程序中使用Crashlytics和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"));
当用户允许时,这种方法效果很好。
当用户决定不允许分析时,我应该如何处理
else

可以在不使用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将被禁用,否则它将被启用。

您可以将所有对Answers.getInstance的调用包装在一个新类中,该类检查您的首选项,如果未启用,则不执行任何操作?IE:而不是Answers.getInstance().logCustom()WrappedAnswers.getInstance().logCustom()。包装的答案将在logCustom()中执行if/else检查。

您可以将所有对answers.getInstance的调用包装在一个新类中,该类将检查您的首选项,如果未启用,则不执行任何操作?IE:而不是Answers.getInstance().logCustom()WrappedAnswers.getInstance().logCustom()。包装的答案将在logCustom()@natez0r中执行if/else检查。请将其作为答案,因为这是我目前使用的路径。这将处理Crashlytics,但答案如何?我相信您需要启用Crashlytics才能使用答案。如果Crashlytics被禁用,我不相信答案会起作用。