首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ContentProviderClient与ContentResolver访问内容提供商

使用ContentProviderClient与ContentResolver访问内容提供商
EN

Stack Overflow用户
提问于 2011-02-23 06:39:58
回答 3查看 19.5K关注 0票数 65

documentation on Android content providers描述了如何使用从getContentResolver()获得的ContentResolver来访问内容。

但是,也有一个可以从getContentResolver().acquireContentProviderClient(authority)获得的ContentProviderClient。它似乎提供了与ContentResolver中提供的访问提供商内容的方法大致相同的方法。

什么时候应该使用ContentProviderClient而不是直接使用ContentResolver?有什么福利待遇?

EN

回答 3

Stack Overflow用户

发布于 2012-07-23 20:11:34

我认为另一个重要的区别是ContentProviderClient可以被转换到您的自定义提供者对象中,并访问除CRUD之外的其他方法。

代码语言:javascript
运行
复制
ContentProvider cp = getContentResolver().acquireContentProviderClient(mCurUri).getLocalContentProvider();
yourProvider fld = (yourProvider)cp;
fld.query(...);           // you can query as ContentResolver
fld.addFolder(newFolder); // also can invoke the extend method of your custom ContentProvider
票数 4
EN

Stack Overflow用户

发布于 2012-03-10 05:17:30

我发现了以下不同之处:我在app A中编写了自己的自定义内容提供程序。我在App B中编写了一个主屏幕小部件。当我试图通过我的小部件中的ContentResolver访问应用A的contentprovider时,我收到了一个“无法找到提供商信息”的错误。相反,当我通过ContentResolver获取ContentProviderClient并通过ContentProviderClient查询时,它就可以工作了。我不需要更改其他任何东西,只使用ContentProviderClient而不是ContentResolver。我对这种行为没有真正的解释,也没有在互联网上找到任何信息,为什么会这样。我不知道这是不是一个特殊的小部件,因为我没有在应用程序B的活动中尝试它(应用程序B只是一个小部件,没有活动)。

票数 2
EN

Stack Overflow用户

发布于 2016-04-08 21:32:04

ContentProviderClient的一个用法有助于在测试中访问ContentProvider的一些方法。例如,我在单元测试中使用shutdown()方法,以避免实例化多个内容提供者的多个测试。

像这样实现ContentProvider#shutdown()

代码语言:javascript
运行
复制
@Override
public void shutdown() {
    openHelper.close();
    super.shutdown();
}

在测试方法的末尾,使用ContentProviderClient调用shutdown()来清理测试,以便其他测试可以使用内容提供者:

代码语言:javascript
运行
复制
getContext()
       .getContentResolver()
       .acquireContentProviderClient(URI)
       .getLocalContentProvider()
       .shutdown();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5084896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档