3

调用Crittercism.init(getApplicationContext(), id);应用程序实现的 onCreate 和 MAIN Activity 是否安全(或推荐)?

Crittercism 设置的官方说明说在 MAIN Activity 中调用它,根本不提应用程序。

这似乎具有忽略应用程序实现的 onCreate 方法(实际上是单例)中发生的任何崩溃的副作用。只有在应用程序实现的 onCreate 中调用 init 时才会报告异常。

那么两者都可以调用init,还是应该只是应用程序,还是只是活动?

4

2 回答 2

3

在这两个地方初始化 Crittercism 库是安全的,但这并不是真正必要的。这是因为在第一次初始化之后,任何后续的初始化都会被检测到并被忽略。

这使您可以选择在任一位置进行初始化。尽管大多数人选择在活动级别进行,但在 Application 类中启动 Crittercism 确实有效。

无论您在哪里初始化库,都应该从您的所有活动中报告崩溃和其他信息。

于 2013-07-03T20:28:08.670 回答
3

除此之外,如果您在活动级别上启动 Crittercism,则不会报告独立运行的 contentprovider 中的任何崩溃,或者,如果您在那里使用 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)

所以我会始终在 Application.onCreate 类中初始化 Crittercism 以避免这些。

于 2013-09-18T13:09:58.287 回答