Android ContentProvider销毁/生命周期
我很好奇是否有人能解释ContentProvider的生命周期。我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁。这似乎不包括在合同中 ContentProvider部分谈到文档很难获得,但它包括一个指向Google Group讨论的链接,Google的一位工程师在讨论中留下了一个快速回复,称“内容提供商永远不会被摧毁。他们在整个过程中都存在。” 好的,那么也许一个内容提供者的生命和它的进程一样长,但是它的进程的生命有多长呢?假设我有一个提供ContentProvider的应用程序,而来自另一个应用程序的查询是创建我的ContentProvider进程的唯一原因(即,没有活动或服务在运行)。该进程真的会无限期地继续运行吗?当Android资源不足时,它会破坏服务等组件。当资源紧张时,内容提供者不也是被摧毁的候选对象吗 我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁 它是在流程启动时创建的(甚至在创建Android ContentProvider销毁/生命周期,android,android-contentprovider,Android,Android Contentprovider,我很好奇是否有人能解释ContentProvider的生命周期。我特别感兴趣的是提供者是否、何时以及在什么情况下被摧毁。这似乎不包括在合同中 ContentProvider部分谈到文档很难获得,但它包括一个指向Google Group讨论的链接,Google的一位工程师在讨论中留下了一个快速回复,称“内容提供商永远不会被摧毁。他们在整个过程中都存在。” 好的,那么也许一个内容提供者的生命和它的进程一样长,但是它的进程的生命有多长呢?假设我有一个提供ContentProvider的应用程序,而来自
应用程序
对象之前),它一直存在到流程终止
它的过程能持续多久
这取决于应用程序、用户和设备的情况
这一进程是否会无限期地继续下去
没有
当系统资源不足时,Android会破坏服务等组件
不,没有。当系统内存不足时,Android会终止进程
当资源紧张时,内容提供者不也是被摧毁的候选对象吗
包含
ContentProvider
的进程可以终止,无论是由于内存不足、年老、用户操作等原因。内容提供商没有特定的生命周期,您也无能为力
控制它。该框架管理内容提供者(流程)的创建和销毁
当进程外部的外部客户端或组件向内容提供者发出请求时,该请求将在提供者所在进程的线程池中的线程中处理。当没有更多的请求时,如果流程中没有更多的活动组件(活动、服务),则可以回收该流程。但这是Android做出的决定。您是否有机会为第一点提供一些支持文档?我只是想多读一些。@notJim:没有文档记录,我希望有。事实上,这个故事比我想象的要复杂一点,因为在我写下这个答案后,我在这一点上做了一些测试。粗略地说,您的
ContentProvider
实例是与您的应用程序
实例同时创建的。我忘记了它们的构造函数和调用的精确顺序。它是在进程启动时创建的(甚至在创建应用程序对象之前),它一直存在到进程终止。
。这是否意味着当我的应用程序被终止时,内容提供者会因为进程终止而被销毁?@rocker:正确。