繁体   English   中英

在Android中存储数据的安全方法是什么?

[英]What's a safe way to store data in Android?

我一直在使用单例存储应用程序启动时加载的数据。 这些数据会在我的应用的整个生命周期内使用,但在以后的发布中不需要保留。 尽管我的单例被垃圾收集并且其数据已擦除,但我已经开始解决这个问题。 单例模式在Android上是否没有任何意义? 使用本地存储或本地数据库似乎有些矫kill过正,但是我不确定要采取其他措施来确保我的数据在应用程序的生命周期内是安全的。

谢谢!

尽管我的单例被垃圾收集并且其数据已擦除,但我已经开始解决这个问题。

不,他们不是。 根据定义,单例(静态数据成员)不能被垃圾收集。

您最有可能看到的是您的进程正在终止

单例模式在Android上是否没有任何意义?

作为缓存机制,这很好。

我不确定要采取其他措施来确保我的数据在应用的生命周期内是安全的

静态数据成员对您的过程 “一生都是安全的”。 如果您希望数据在过程终止后仍然存在,则需要将该数据存储在数据库, SharedPreferences或其他某种文件中。

您是否在应用程序的应用程序( http://developer.android.com/reference/android/app/Application.html )级别中引用单例? 那应该使它们在大多数情况下保持持久(除非它们是byte []或其他巨大的东西)。

但是,最安全的选择是假设将对数据进行垃圾收集,并以此假设为基础构建代码。 如果来自网络,则定义一个异步回调以加载数据,然后填充视图。 如果它不是用户生成的本地内容,请使用异步从磁盘中获取它。 如果是用户生成的,则可能需要设置一个数据库(在重新启动应用程序时可以将其清空)以跟踪数据。

但是,如果您还没有尝试过,请先尝试在应用程序中保留对单例的引用。 此处的简要介绍: http : //www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM