我发现onCreate of ContentProvider首先被调用,甚至在我的Activity的onCreate之前。例如:Vogella Android SqlLite。
但我想知道它是如何发生的以及为什么?
是因为我们在Manifest中将其注册为提供商吗?
答案 0 :(得分:9)
onCreate是在启动时初始化您的内容提供商。在应用程序启动时,应用程序主线程上的所有已注册内容提供程序都会调用此方法。是的,这是因为您在清单中注册它们...
答案 1 :(得分:0)
我遇到了和你一样的问题。如果您想知道内容提供商何时初始化,请在此处How do I catch content provider initialize?
查看我的回答答案 2 :(得分:0)
ContentProvider.onCreate()
(在清单中定义)是在Application.onCreate()
[Multiprocess Application](与其他Android组件-活动,服务,广播接收器之前)之前创建的。它是在主线程中创建和初始化的
您会发现某些库使用此方法来不强制开发人员将库初始化为Application.onCreate()方法并传递上下文。