我想保存应用程序状态,以便在另一次启动后恢复它。是否更好的方法是使用onSaveInstanceState方法并将其保存到Bundle或使用SharedPreferences?
由于
答案 0 :(得分:8)
这取决于你的意图。如果要确保在配置更改和其他重新启动事件期间保存状态,则使用onSaveInstanceState()
只是一种合理的解决方案。如果您的目标是在应用程序的生命周期之外真正保存应用程序的状态,则应考虑使用SharedPreferences或甚至使用数据库。
答案 1 :(得分:1)
我可能没有和其他一些海报一样的开发印章(我自2012年7月开始认真开发应用程序),但我找到了一个集成了SharedPreferences和onSaveInstanceState的解决方案()。
我的应用程序有一个启动画面活动,它从SharedPreferences读取值并将它们分配给适当的变量。另外,我制作的每个Activity都有自己的onSaveInstanceState()方法,并且我在每个Activity中提交我需要保存到SharedPreferences的所有数据。由于onSaveInstanceState()在App或Activity正常关闭之前运行,因此它应该在所有正常情况下备份数据值。
它可能不是最具代码效率的解决方案,尤其是在具有许多活动的大型应用程序中,但就我的测试而言,它可以保护您的应用程序在99%的时间内不会丢失数据。
如果一个更有经验的开发人员想要插入并确认或否认这一点,我相信它会丰富问题和答案。
答案 2 :(得分:0)
我相信onSaveInstanceState()是更好的选择。
这里已经给出了更好的解释:Saving Android Activity state using Save Instance State