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