ContentProvider销毁/生命周期

时间:2014-06-04 20:45:29

标签: android android-contentprovider

我很好奇是否有人可以解释ContentProvider的生命周期。我特别感兴趣的是,在何时以及在什么情况下提供者被销毁。 the documentation似乎没有涵盖这一点。

this article的ContentProvider部分讨论了难以获得的文档,但它包含了一个指向Google网上论坛讨论的链接,谷歌的工程师对此做了快速回复,并指出“内容提供商永远不会被销毁。”在他们的整个过程中存在。“

好吧,也许ContentProvider可以和它的进程一样长寿,但它的进程有多长?假设我有一个提供ContentProvider的应用程序,而另一个应用程序的查询是我创建ContentProvider进程的唯一原因(即,还没有运行的Activity或Service。)该进程是否真的会无限期地继续运行?当Android资源不足时,它会破坏服务等组件。当资源紧张时,ContentProviders是否也不会被摧毁?

2 个答案:

答案 0 :(得分:7)

  

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

它是在您的进程启动时创建的(甚至在创建Application对象之前),它一直存在直到进程终止。

  

它的过程有多长?

根据应用,用户和设备的情况而有所不同。

  

这个过程会继续无限期地运行吗?

没有

  

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

不,它没有。当系统在RAM上运行不足时,Android会终止进程。

  

当资源紧张时,ContentProviders是否也不会被摧毁?

包含ContentProvider的进程可以终止,无论是由于内存条件低,年龄大,用户操作等原因。

答案 1 :(得分:0)

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

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