android app开启在后台运行,玩其他app一段时间后,数据都没了,该如何处理??

mcgradybryant
  • 62

android 打开app,本来是登录状态,个人中心fragment本来是有数据的,而且本地也保存了该app的登录状态(即用户而不是游客,该数据也是通过set保存在application的继承类中),按home键,让其在后台运行,去玩其他app一段时间后,在从后台去打开前面那个app,那个app的数据没了,连本地保存的登录状态也没有了,我想问的是这该如何处理???

回复
阅读 4k
2 个回答
  1. 有些机型(比如红米系列),app被推到后台一段时间后会被系统回收。所以,如有需要,你可以在app被推到后台时保存当前页面的状态;

  2. 登录状态(比如cookie)不能仅保存在application的继承类中,而需要持久化,比如保存到SharedPreferences、sqlite等,下次再拿出来塞到请求头中;

登录状态不见了是因为在后台运行的时候手机内存不足, 所以回收了你的app, 这时候原来app的实例都会丢失, 如果你保存数据, 那实例中的数据就会丢失, 自然就没有登录状态了.

  1. 登录状态应该持久化到硬盘里面, 推荐SharedPreferences, 存数据库也行.

  2. Activity和Fragment的状态应该在对应的onSaveInstanceState方法里保存你想要的数据, 然后在onCreate()或者onCreateView()里面恢复保存的数据, 再根据这些数据设置控件状态来恢复退出app时的状态, 更详细的说明直接搜onSaveInstanceState就有了.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏