ContentProvider 是啥时候真正创建的?

Posted

技术标签:

【中文标题】ContentProvider 是啥时候真正创建的?【英文标题】:When is a ContentProvider really created?ContentProvider 是什么时候真正创建的? 【发布时间】:2010-08-14 15:25:35 【问题描述】:

我有一个在 Manifest 中声明的 ContentProvider,它是什么时候真正创建的?当应用程序启动但在启动第一个活动之前?第一次查询/更新/插入何时完成?什么时候?

【问题讨论】:

【参考方案1】:

来自http://developer.android.com/reference/android/content/ContentProvider.html#onCreate():

实现这一点以在启动时初始化您的内容提供程序。在应用程序启动时,为应用程序主线程上的所有注册内容提供程序调用此方法。它不能执行冗长的操作,否则应用程序启动会延迟。

【讨论】:

这符合我的经验 - onCreate() 在应用启动时被调用,远在执行任何查询/插入/更新之前。 好的,那么它什么时候启动呢?在 BOOT_COMPLETED...?【参考方案2】:

当第一次查询/更新/插入完成时。检查this

更新:android 文档在这方面是无效的。这里描述了有效的行为https://***.com/a/11858493/657487

应用启动时创建的ContentProvider。所以,让 onCreate() 轻量级可能是明智之举

【讨论】:

它将在应用程序创建之前创建。 ***.com/questions/11788838/…

以上是关于ContentProvider 是啥时候真正创建的?的主要内容,如果未能解决你的问题,请参考以下文章

在同一进程中使用 Content Provider 的缺点是啥

Android-ContentProvider简单的增删改查

Android编程中onActivityResult的作用是啥?设么时候才会调用这个方法?

API 和微服务之间的真正区别是啥?

安卓中的数据存储方式以及ContentProvider的简单介绍

ContentProvider的启动流程分析