ContentProvider没有SQL

我有两个数据需要从外部应用程序访问和存储。 根据文档ContentProviders是唯一可能的方式,但它也提到了外部存储。 ContentProvider实现了一个类似数据库的“接口”,使用数据库对于两个数据来说是非常不必要的。 我宁愿把它们保存到一个文件中,但是通过实现抽象方法来使用ContentProvider是有问题的,因为这些方法被构造为数据库查询。

我知道没有任何内容指定ContentProvider必须使用下面的数据库来存储数据,但是有没有其他方法来存储必须共享到文件系统的最小数量的数据?

Solutions Collecting From Web of "ContentProvider没有SQL"

我只是使用MatrixCursor来解决确切的问题。 看看它。

编辑:对不起,我刚刚扫描了这个问题,当我回答。 ContentProvider是应用程序共享数据的唯一方式。 应用程序中的活动可以将SharedPreferences用于较小的数据,并增加持久性。

编辑v2:这是我用来为我的ContentProvider的查询函数填充一个MatrixCursor的函数。 我正在使用一个预定义的我创build的VIEW返回一组不同的值,这将build立一个与_ids光标,我可以传递给我的ExpandableListView。

 private Cursor getFactions() { MatrixCursor mc = new MatrixCursor(Model.Faction.PROJECTION); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor c = db.query(MODELFACTION_TABLE_NAME, new String[] { Model.Faction.FACTION }, null, null, null, null, Model.Faction.FACTION + " ASC"); c.moveToFirst(); do { mc.addRow(new Object[] { c.getPosition(), c.getString(c.getColumnIndex(Model.Faction.FACTION))}); } while (c.moveToNext() && ! c.isAfterLast()); c.close(); db.close(); return mc; } 

SharedPreferences类提供了一个通用框架,允许您保存和检索原始数据types的持久键值对。 您可以使用SharedPreferences来保存任何原始数据: 布尔值浮点数整数 整数string 。 这些数据将持续用户会话(即使您的应用程序被终止)

有用的链接:

http://developer.android.com/reference/android/content/SharedPreferences.html

http://developer.android.com/guide/topics/data/data-storage.html