Android Crittercism init как в приложении, так и в действии

Безопасно (или рекомендуется) вызывать Crittercism.init(getApplicationContext(), id); Как в реализации onCreate Application, так и в MAIN Activity?

Официальные инструкции по настройке Crittercism говорят, чтобы вызвать его в MAIN Activity и вообще не упоминать приложение.

Это похоже на побочный эффект игнорирования любых сбоев, которые происходят в методе onCreate реализации приложения (эффективно одноэлементный). Исключения только сообщаются, если init вызывается в onCreate реализации приложения.

Так нормально ли вызывать init в обоих, или это просто приложение или просто активность?

Безопасно инициализировать библиотеку Crittercism в обоих местах, но это не обязательно. Это связано с тем, что после первой инициализации любые последующие инициализации будут обнаружены и проигнорированы.

Это оставляет вам возможность инициализации в любом месте. Хотя большинство людей предпочитают делать это на уровне активности, запуск Crittercism в классе Application действительно работает.

Независимо от того, где вы инициализируете библиотеку, следует сообщать о сбоях и другой информации из всех ваших действий.

Помимо этого, если вы инициируете Crittercism на уровне активности, любые сбои в независимо запущенных контент-провайдерах либо не сообщаются, либо, если вы используете Crittercism там, чтобы, например, оставить панировочные сундуки, сбой contentprovider со следующим исключением:

 Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:121) at crittercism.android.f$5.<init>(Unknown Source) at crittercism.android.f.<init>(Unknown Source) at com.crittercism.app.Crittercism.<clinit>(Unknown Source) 

Поэтому я бы всегда инициализировал Crittercism в классе Application.onCreate, чтобы избежать этого.