【问题标题】:onCreate of Content Provider内容提供者的 onCreate
【发布时间】:2012-04-05 14:57:34
【问题描述】:

我发现 ContentProvider 的 onCreate 被首先调用,甚至在我的 Activity 的 onCreate 之前。例如:Vogella Android SqlLite

但我想知道它是如何发生的,为什么?

是因为我们在 Manifest 中将其注册为提供者吗?

【问题讨论】:

    标签: android android-contentprovider oncreate


    【解决方案1】:

    onCreate 是在启动时初始化你的内容提供者。在应用程序启动时,在应用程序主线程上为所有注册的内容提供者调用此方法。是的,这是因为您在清单中注册了它们...

    【讨论】:

    • 另外,如果你不介意..你能解释一下什么是控制流..我的意思是它是怎么发生的?我没有得到每次调用哪个方法?
    • 你在问我一个更概念性的问题......我不确定......=]..但这是我从文档中理解的......在启动应用程序时......检查清单是否有任何内容提供者.. 如果有的话.. 他们的 oncreate 被调用.. 以便它们在您的应用程序创建后立即可用..
    • 是的..我明白这一点。我想知道数据库实际上是什么时候创建的,生命周期方法是什么,这个项目中方法执行的顺序是什么?
    • Sneha,如果您有后续问题,可以提出一个全新的问题(或多个问题)。
    【解决方案2】:

    我遇到了和你一样的问题。如果您想知道您的内容提供商何时初始化,请在此处查看我的回答 How do I catch content provider initialize?

    【讨论】:

      【解决方案3】:

      ContentProvider.onCreate()(在 manifest 中定义)在 Application.onCreate()[Multiprocess Application](与其他 Android 组件之前相同 - 活动、服务、广播接收器)之前创建。在主线程中创建并初始化

      您会发现有些库使用这种方法来不强制开发人员将库初始化为 Application.onCreate() 方法并传递上下文。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多