Android ContentProvider销毁/生命周期

Android ContentProvider销毁/生命周期,android,android-contentprovider,Android,Android Contentprovider,我很好奇是否有人能解释ContentProvider的生命周期。我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁。这似乎不包括在合同中 ContentProvider部分谈到文档很难获得,但它包括一个指向Google Group讨论的链接,Google的一位工程师在讨论中留下了一个快速回复,称“内容提供商永远不会被摧毁。他们在整个过程中都存在。” 好的,那么也许一个内容提供者的生命和它的进程一样长,但是它的进程的生命有多长呢?假设我有一个提供ContentProvider的应用程序,而来自

我很好奇是否有人能解释ContentProvider的生命周期。我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁。这似乎不包括在合同中

ContentProvider部分谈到文档很难获得,但它包括一个指向Google Group讨论的链接,Google的一位工程师在讨论中留下了一个快速回复,称“内容提供商永远不会被摧毁。他们在整个过程中都存在。”

好的,那么也许一个内容提供者的生命和它的进程一样长,但是它的进程的生命有多长呢?假设我有一个提供ContentProvider的应用程序,而来自另一个应用程序的查询是创建我的ContentProvider进程的唯一原因(即,没有活动或服务在运行)。该进程真的会无限期地继续运行吗?当Android资源不足时,它会破坏服务等组件。当资源紧张时,内容提供者不也是被摧毁的候选对象吗

我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁

它是在流程启动时创建的(甚至在创建
应用程序
对象之前),它一直存在到流程终止

它的过程能持续多久

这取决于应用程序、用户和设备的情况

这一进程是否会无限期地继续下去

没有

当系统资源不足时,Android会破坏服务等组件

不,没有。当系统内存不足时,Android会终止进程

当资源紧张时,内容提供者不也是被摧毁的候选对象吗


包含
ContentProvider
的进程可以终止,无论是由于内存不足、年老、用户操作等原因。

内容提供商没有特定的生命周期,您也无能为力 控制它。该框架管理内容提供者(流程)的创建和销毁


当进程外部的外部客户端或组件向内容提供者发出请求时,该请求将在提供者所在进程的线程池中的线程中处理。当没有更多的请求时,如果流程中没有更多的活动组件(活动、服务),则可以回收该流程。但这是Android做出的决定。

您是否有机会为第一点提供一些支持文档?我只是想多读一些。@notJim:没有文档记录,我希望有。事实上,这个故事比我想象的要复杂一点,因为在我写下这个答案后,我在这一点上做了一些测试。粗略地说,您的
ContentProvider
实例是与您的
应用程序
实例同时创建的。我忘记了它们的构造函数和调用的精确顺序。
它是在进程启动时创建的(甚至在创建应用程序对象之前),它一直存在到进程终止。
。这是否意味着当我的应用程序被终止时,内容提供者会因为进程终止而被销毁?@rocker:正确。