2015-08-13 5 views
0

Я добавляю новое предпочтение в своем приложении, чтобы позволить пользователю отказаться от аналитических отчетов. Я использую в своем приложении Crashlytics и ответы от Fabric.Отключить Crashlytics/Answers на основе пользовательских настроек

У меня есть этот код в 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, когда пользователь решает не разрешать аналитику?

+0

Вы можете перенести все свои вызовы на Answers.getInstance в новый класс, который проверяет ваши предпочтения и ничего не делает, если он не включен? IE: Вместо Answers.getInstance(). LogCustom() WrappedAnswers.getInstance(). LogCustom(). И завернутые ответы сделают вашу проверку if/else в logCustom() – natez0r

+0

@ natez0r, пожалуйста, сделайте это как ответы, так как это путь, который я использую сейчас. – Alin

+0

добавлен в качестве ответа! – natez0r

ответ

0

Вы можете перенести все свои вызовы на Answers.getInstance в новый класс, который проверяет ваши предпочтения и ничего не делает, если он не включен? IE: Вместо Answers.getInstance(). LogCustom() WrappedAnswers.getInstance(). LogCustom(). И завернутые ответы сделают вашу проверку if/else в logCustom()

2

Могли бы сделать что-то вроде этого, не используя, если/иначе:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(!PreferenceHelper.getAllowAnalytics(context)).build(); 
Fabric.with(this, new Crashlytics.Builder().core(core).build()); 

Таким образом, если ваш метод getAllowAnalytics возвращает ложь, то будет отключена Ткань/Crashlytics, в противном случае он будет включен.

+0

Это позаботится о Crashlytics, но как насчет ответов? – Alin

+0

Я считаю, что вам нужны Crashlytics, чтобы использовать ответы. Если Crashlytics отключен, я не верю, что ответы будут работать. – joelreeves