hmrshkk 2023-04-18 22:39 采纳率: 57.1%
浏览 10
已结题

SharedPreferences和保存成文件哪个好?

请问一下,我想将自定义的layout文件做一个持久化,目的是关闭app都将当前界面状态保存,然后打开app时恢复上次关闭时的状态。
自己定义layout中有button和imagebutton 、 textview,将这几个控件当做一整个view。需要放入多个那种view时,这个layout是否算复杂?因为看到说SharedPreferences用的时候layout不要太复杂。想问一下是用SharedPreferences好还是写入文件好?

  • 写回答

2条回答 默认 最新

  • Vayne16 2023-04-18 22:43
    关注

    SharedPreferences和保存成文件都可以实现持久化数据的功能,但是每种方式适用的场景不同。

    SharedPreferences主要适用于存储键值对的简单数据,比如存储一些用户的偏好设置,比如是否允许推送通知,是否开启自动登录等等。这些数据量较小,可以存储在SharedPreferences中。但需要注意的是,SharedPreferences只适用于存储少量简单的数据,复杂的数据结构不适合使用SharedPreferences存储。

    保存成文件适用于存储复杂的数据结构和大量数据,比如存储应用程序的配置、缓存、日志等。对于存储具有大量结构的数据,例如多个控件的布局,我们可以考虑将其序列化后以文件形式存储。

    回到上述情况,由于自定义的layout中有button和imagebutton、textview等多个控件,每个控件又包含一些属性,所以这种情况下建议使用保存成文件的方式。当我们关闭app时,读取相关文件内容并反序列化即可恢复上次保存的状态。

    例子:将多个控件的布局相应的Java对象中,将该对象序列化并写入文件中。当我们再次打开app时,从文件中读取序列化对象,解析其数据并恢复视图的状态。

    需要注意的是,如果保存的数据量过大或者保存的数据结构比较复杂,会对程序读写操作和占用存储空间产生一定的影响,需要合理地处理保存数据的方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程