Android Content Provider-使用查询方法插入,删除和更新

时间:2018-10-27 22:56:26

标签: android android-contentprovider

我一直在通过阅读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){}

我还没有找到任何显示如何完成此工作的资源。所有人似乎都在利用所提供的方法。

1 个答案:

答案 0 :(得分:1)

坦率地说,在该培训指南中,这确实是一项糟糕的工作。它只会做的是使人困惑。

我假设它们的意思是query()并没有什么法宝可迫使它仅执行SQL SELECT语句。 ContentProvider是一个外观-您可以使用它来存储和检索几乎所有您想要的内容,而不仅仅是SQLite。

因此,您可以使用query()方法:

  • 检查Uri
  • 寻找它的格式为content://your.authority/something/insert/put/data/here
  • 解析Uri以获得putdatahere
  • 将那些插入表中的某些预定列下
  • 返回空的MatrixCursor

或者,它可以:

  • 检查Uri
  • 寻找它的格式为content://your.authority/something/insert
  • 使用projection插入列,并使用selectionArgs作为要插入这些列的值
  • 返回空的MatrixCursor

我不知道为什么有人会这样做,但是肯定有可能。