
保存Android应用程序的应用程序类(单例)中存储的数据的最佳方法是什么?
我有一个安静的大应用程序,在活动之间共享大量数据.因此大部分都存储在Application Singleton上.
这一切都很有效.. util应用程序被低内存的 *** 作系统杀死…然后当它返回时它会尝试恢复活动而没有成功,因为缺少必须在Application上的数据.
由于缺乏一种非常欣赏(和需要)的方法来根据您的经验在应用程序上保存数据,哪种方法最好?
我可以保存一些东西,除了“正常”字符串,布尔值等,比如Bitmaps?
我已经看过这个How to declare global variables in Android?,但问题并不是关注在这种情况下重要的是什么,当应用程序因内存不足而被杀死时如何保存数据…
解决方法:
与许多问题一样,没有简单的答案.有许多方法可以保存数据,每种方法都有优点和缺点. “最佳”方法取决于您的特定需求.你有这里的所有选择:http://developer.android.com/guide/topics/data/data-storage.html
>对于少数小位图,您可以对它们进行编码并将其存储在SharedPreferences中.
>对于更多更大的图像,您有两种选择
> database中的blob列
>将它们存储为internal storage中的文件,并将链接保留在您的首选项中.
SharedPreferences存储字符串,因此可以存储任何字符串,包括任何序列化/编码对象.根据this post,SharedPreferences中的序列化字符串没有硬编码大小限制,但是基于字符串大小限制.尽管如此,this other post指出整个SharedPreferences对象是作为单个xml文件编写的,因此您应该尽量将其大小保持在最小值.
JsON对象(或使用katit建议的GSON)是一个很好的轻量级选项,但我采取的方法是将它们保存到内部数据存储(除非数据真的很大,即数兆字节,你更喜欢外部存储)并仅在SharedPreferences中保留链接.我不知道你的对象是什么样的,但是如果它们可以简化为一堆更简单的组件,你可以为它们考虑一个数据库(即每个对象一行,每个字段一列,包括一些blob) .
文件与数据库方法还取决于您计划访问这些对象的次数.如果它们只被阅读一两次然后消失,那么我会选择文件而不是数据库及其游标的麻烦.如果有很多读取,我会选择一个数据库,也许你需要使用查询更快的搜索.
另请查看此帖子:http://android-developers.blogspot.in/2009/02/faster-screen-orientation-change.html以获取特定于活动的选项.
总结以上是内存溢出为你收集整理的Android:保存Application Singleton Class中存储数据的最佳方法全部内容,希望文章能够帮你解决Android:保存Application Singleton Class中存储数据的最佳方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)