【发布时间】:2012-04-05 14:57:34
【问题描述】:
我发现 ContentProvider 的 onCreate 被首先调用,甚至在我的 Activity 的 onCreate 之前。例如:Vogella Android SqlLite。
但我想知道它是如何发生的,为什么?
是因为我们在 Manifest 中将其注册为提供者吗?
【问题讨论】:
标签: android android-contentprovider oncreate
我发现 ContentProvider 的 onCreate 被首先调用,甚至在我的 Activity 的 onCreate 之前。例如:Vogella Android SqlLite。
但我想知道它是如何发生的,为什么?
是因为我们在 Manifest 中将其注册为提供者吗?
【问题讨论】:
标签: android android-contentprovider oncreate
onCreate 是在启动时初始化你的内容提供者。在应用程序启动时,在应用程序主线程上为所有注册的内容提供者调用此方法。是的,这是因为您在清单中注册了它们...
【讨论】:
我遇到了和你一样的问题。如果您想知道您的内容提供商何时初始化,请在此处查看我的回答 How do I catch content provider initialize?
【讨论】:
ContentProvider.onCreate()(在 manifest 中定义)在 Application.onCreate()[Multiprocess Application](与其他 Android 组件之前相同 - 活动、服务、广播接收器)之前创建。在主线程中创建并初始化
您会发现有些库使用这种方法来不强制开发人员将库初始化为 Application.onCreate() 方法并传递上下文。
【讨论】: