使用Android共享首选项存储大量数据是一个好主意吗?

| 所以我从别人那里继承了这个Android项目。当前,该代码似乎将大量数据(实际上应该属于SQLite数据库)存储到共享首选项中。我对那部分代码感到非常不舒服,想开始使用sqlite数据库。但是我仍然无法为自己辩护说要花费的时间,特别是如果它没有立即带来的好处。 当然,我最终将把它移至sqlite,但是由于我有点紧迫的最后期限,所以我想知道现在或以后这样做是否值得。 对于在共享首选项中存储大量数据的任何想法和评论,将不胜感激。 谢谢     
已邀请:
        如果现在可以使用,那么您绝对可以离开它。您应该将大量数据输入数据库是正确的。如果没有其他问题,您将可以更轻松地查询数据。 进一步的研究发现,该帖子暗示您在Shared Prefs中使用大量数据不会有任何重大问题。但是,您可能会遇到性能问题,因为在使用数据库时,必须读取单个Shared Pref XML文件以获取任何偏好,而您只需要按需获取所需内容即可。     
        TL; DR;不要将共享首选项用于大型存储,而应使用数据库(但如果它现在可以使用并且您急于稍后再使用) 我个人不会推荐它,因为系统会为您的应用保留所有共享首选项的内存中副本。因此,如果将大量数据放入其中,则会影响内存使用率。就是说,并且取决于数据格式(是否可以按原样使用它并使用键直接找到它-如果您只是存储了一个巨大的JSON对象然后必须对其进行解析,或者是否必须将所有共享首选项都保存到然后对您真正需要的对象进行线性搜索,无论哪种情况都没有什么好处),而且您必须多久访问一次,查找可能比文件或数据库快,因为文件或数据库已经存在记忆。它也提供了线程安全的好处(SQL DB也是一样,因为访问时DB会被锁定),而不是文件,而您必须自己处理该文件。 希望这可以帮助。     

要回复问题请先登录注册