我想在服务中使用 Contentprovider。我已经编写了一个处理程序类来解析 JSON 并希望在我的 contentprovider 中插入数据,如何为服务提供 contentprovider 的引用?
2 回答
只需拨打 getContentResolver()
您的服务电话;
评论在正确的轨道上,但我觉得他们需要详细说明:
内容提供者,即使是您仅在自己的应用程序中使用的内容提供者,也并非旨在直接引用。相反,应用程序应该使用 ContentResolver 中的方法来访问内容提供者。ContentResolver 具有与您必须为 ContentProvider 实现的方法(其抽象方法)相同的方法集。例如,如果要向 ContentProvider 中插入数据,则调用 getContentResolver().insert()。ContentResolver 是一个通用对象,用于与内容提供者、文件提供者和同步适配器框架进行通信。
当您在应用程序中定义内容提供者时,您必须在清单中定义其权限值,并且您还必须编写解释传入内容 URI 的代码。使用内容 URI 的最佳方法是首先为提供程序中的每个表分配一个单独的内容 URI,使用形式为
content://*authority*/*path*
权限是您在清单中指定的权限字符串;事实上的标准是使用您的应用程序的包名称并附加“.provider”。路径是它所代表的表的描述性术语。例如:
content://com.example.android.myapp.provider/sales
指向您的提供商中的销售表。如果你愿意,你可以变得更漂亮,但大多数开发人员会通过这个提案满足他们的需求。
要在内容提供程序中使用内容 URI,请使用 android.content.UriMatcher 类。