什么是Android上的最佳实践,以保持活动deathes /重启之间的数据为整个应用程序会话?
-
19-09-2019 - |
题
我们正在设计一款Android应用,具有在像这样一个向导工作的几项活动 - 用户应该从活动#1至#活动5传递给进入决赛的活动(#6)
由于我们知道一个活性可以通过OS突然终止于我们使用的应用类作为静态存储用于保持上的“向导”的活动和其它数据提供了对整个会话的应用程序需要的数据中的用户输入的低存储器。
不幸的是,我们已经发现了这种方法失败 - 看起来像Application类实例也可以通过OS被杀死(这是专门在Android 1.6对比发现1.5)。是我们的预期错了这种方法(我们认为应用类的实例总是生活在整个应用程序会话)?
所以,问题是 - 什么是Android上的最佳实践,以保持活动deathes之间的数据/整个应用程序会话重新启动
解决方案
我们正在设计一款Android应用, 有几个活动,是 像这样一个向导工作 - 用户 应该从活动#1传递到 活动#5进入决赛 活性(#6)。
您确定要实现它们作为单独的活动?为什么不是一个单一的活性,使用ViewFlipper
或东西到向导状态之间移动?
是我们的预期错了这 方法(我们认为应用类 实例始终住整个 应用会话)?
在应用类的实例并不总是活在整个应用程序会话,据我所知。一旦所有的活动被破坏,但是,应用程序将被销毁。
所以,问题是 - 什么是最好的 Android上的做法,以保持数据 活动deathes /重新启动之间 为整个应用程序会话?
- 使用一个
Service
- 如果这被踢出的RAM,只是从头开始 - 使用一个数据库
- 使用一个文件 醇>
或者,最好的:不要在此情况下,使用多个活动。向导是一个逻辑的事情;对待它,并把它变成一个单一的活动。通过onSaveInstanceState()
坚持你的状态,你设置。
其他提示
如果该用户输入和需要存储只是一组原语的数据,就可以简单地使用SharedPreferences
作为永久存储。