从数据库获取数据与从哈希映射获取数据

 邵crnich 发布于 2023-02-12 15:19

在我的android*项目*我必须跟踪一定数量的产品的产品细节.这些产品上的所有数据都存储在SQLite数据库中.我可以在SQLite中使用selectupdate来跟踪产品对象.因此,我可以在更改时存储产品详细信息.此外,我可以在开始时将所有产品加载到哈希映射或此类数据结构中,并跟踪这些产品对象.什么事情对我来说是出于上述两个哪一个更有效高效.有人能帮我吗.谢谢!

1 个回答
  • 这取决于产品的数量.HashMap驻留在RAM中,数据库驻留在磁盘上.

    这还取决于每秒查询的数量和查询的性质.数据库开发人员付出了很多努力来支持索引和过滤; 如果你需要,重用比重新发明更好.

    无论您选择哪种方法,您都必须记住Android应用程序进程可能随时被杀死(例如,当另一个进程需要内存时),并且您的代码只能保证接收onPause()(而不是onDestroy()onStop( ),参见活动生命周期).如有必要,稍后将重新启动应用程序,但保存在RAM中(而不是保存)的所有数据当然都将丢失.因此,在onPause()onSaveInstanceState()(用于捆绑包)中,您必须保存应用程序状态.在您的情况下,这可能意味着必须保存HashMap和所有辅助数据结构.

    OTOH,如果产品数量很少(并且预计仍然很小),数据库可能是一种过度杀伤力; 如果您只需要选择10个项目中的一个,那么编写循环比完成所有数据库支持要快.

    一个更重要的注意事项:一个Activity是一个来自MVC观点的Controller(对于View,你通常创建和XML并重用现有的框架类,尽管你可以编写自定义控件).每次设备方向更改时以及在某些其他情况下,都会重新创建活动.但是您的数据属于Model部分.他们必须在方向改变中存活下来 因此,它们不得归活动所有.

    2023-02-12 15:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有