2017-09-17 38 views
0

假设一个Android应用程序有多个入口点相关的任务:系统启动活动,服务等执行处理启动

而且假设我们需要执行一些任务时,应用程序(这意味着它的任何组件)以上述任何选项开始。把它放在一些背景下,假设我们需要初始化崩溃报告系统。

把代码放在每一个antry点(Activity.onCreate()Service..onCreate())是首先想到的,但它看起来应该有一个更好的方法。

实施它的做法是什么?

+0

请详细解释。如果你调用Activity.onCreate(),它是非常糟糕的 – redAllocator

回答

0

通常的方法是放置在Application.onCreate()该代码是 当应用程序开始调用,任何活动,服务,或接收器对象(不包括内容提供者)之前已经创建。这就是Fabric/Crashlytics初始化了多少库。

+0

谢谢。当我启用Fabric Crashlytics时出现了这个问题。他们的Android Studio插件中的代码示例实际上包含了“Activity.onCreate()”中的初始化代码,而不是'Application.onCreate()'中更正确的代码,这真是令人遗憾。 –

+0

可能的原因是没有Application类,因此它选择将其添加到启动Activity。如果你已经有一个应用程序类,我想它会在那里添加初始化代码。 – Crispert

+0

我没有使用自动安装。我的意思是他们的指南根本没有提到应用程序类中的设置。例如见[这里](https://fabric.io/kits/android/crashlytics/install)。 –