android – 没有SQL的ContentProvider

android – 没有SQL的ContentProvider,第1张

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

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

解决方法 我只是使用MatrixCursor来解决这个确切的问题.看看吧.

编辑:对不起,当我回答时,我刚刚扫描了问题. ContentProvIDer是应用程序共享数据的唯一方式.应用程序中的活动可以使用SharedPreferences来处理较小的数据,并添加持久性.

编辑v2:这是我用来为我的ContentProvIDer的查询功能填充MatrixCursor的函数.我正在使用我创建的预定义VIEW,它返回一组不同的值,这会设置一个带有_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,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;    }
总结

以上是内存溢出为你收集整理的android – 没有SQL的ContentProvider全部内容,希望文章能够帮你解决android – 没有SQL的ContentProvider所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存