我一直在通过阅读Android Developer Fundamentals (Version 1)研究内容提供商。
在“ 11.1通过内容提供者共享数据” /“ query()方法”部分下,有一条注释指出
注意:提供了insert,delete和update方法用于 方便和清晰。从技术上讲,查询方法可以处理 所有请求,包括插入,删除和更新数据的请求。
如何使用查询方法插入/删除/更新数据?查询方法具有以下签名,并且不采用自定义SQL字符串。
public Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder){}
我还没有找到任何显示如何完成此工作的资源。所有人似乎都在利用所提供的方法。
答案 0 :(得分:1)
坦率地说,在该培训指南中,这确实是一项糟糕的工作。它只会做的是使人困惑。
我假设它们的意思是query()
并没有什么法宝可迫使它仅执行SQL SELECT
语句。 ContentProvider
是一个外观-您可以使用它来存储和检索几乎所有您想要的内容,而不仅仅是SQLite。
因此,您可以使用query()
方法:
Uri
content://your.authority/something/insert/put/data/here
Uri
以获得put
,data
和here
值MatrixCursor
或者,它可以:
Uri
content://your.authority/something/insert
projection
插入列,并使用selectionArgs
作为要插入这些列的值MatrixCursor
我不知道为什么有人会这样做,但是肯定有可能。