Android应用程序中,Activity的onCreate方法在Application的onCreate方法之前被调用。

5
在某些情况下,我可以看到Activity.onCreate在Application对象被创建之前调用(在调用Application.onCreate之前)。这种情况是否可能?

3
这不应该发生。你是如何确定正在发生这种情况的? - CommonsWare
你能分享一下你的清单文件吗? - Anupam
你介意分享一下你所说的案例吗? - Deˣ
2
我现在也面临着同样的问题。之前它一直运行良好,但从今天开始我一直收到这个错误。 - Chintak Patel
1
我也遇到了同样的问题。 - Asimaruk
3个回答

1

也许您忘记在清单文件中添加应用程序类。

将您的应用程序类放置在AndroidManifest.xml类下的<application>标签中。
例如:

<application
    android:name=".{YourApplicationClassName}"
    ...
    ...

在调用之前而不是不调用。 - heqingbao

0
在某些情况下,我可以看到Activity.onCreate在创建Appication对象之前被调用(在Application.onCreate之前被调用)。
这不是Android文档关于Application类的说法。根据官方Android文档,
应用程序类或应用程序类的子类在创建应用程序/包的进程时比任何其他类都要先实例化。
此外,以下是Application类的onCreate()的具体解释
当应用程序启动时,在创建任何活动、服务或接收器对象(不包括内容提供者)之前调用。
因此,必须首先调用Application的onCreate(),然后才能调用Activity类的onCreate()。
因此,根据Application类和Activity类实例化的流程,您提到的场景是不可能发生的。

我不明白您想要表达什么。应用程序的onCreate()被调用的时间并不重要。也许Android只是不等它完成就继续执行活动。显然这是一个漏洞。如果文档与现实不符,我不关心文档说什么。 - The incredible Jan

0
如果您使用日志记录来确定应用程序何时创建,请检查是否使用外部日志记录系统,例如通常在应用程序的onCreate()末尾实例化的Timber。因此,在调用它时,似乎没有在此系统实例化之前出现任何内容。
请尝试在应用程序onCreate()中的super.onCreate()之前实例化日志记录工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接