为了账号安全,请及时绑定邮箱和手机立即绑定

Android静态对象生命周期

Android静态对象生命周期

慕的地8271018 2019-08-01 14:39:00
Android静态对象生命周期我正在创建事件搜索应用程序,我们在另一个屏幕中填充一个屏幕设置搜索条件,然后用户可以从第3个屏幕编辑搜索条件并转到第4个屏幕。为了实现上述任务,我使用静态对象来记住应用程序周围的值,我不需要做任何额外的事情。但我担心如果关于静态对象生命周期在android如果低内存发现android删除静态对象???由于android支持多任务处理,如果用户切换到另一个应用程序并且当用户回来应用程序开始疯狂时,静态对象在多任务时被删除??? 任何的想法 ??并建议通过单例方法保持静态对象是更好的方法???
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

嗯,Singleton模式也基于使用静态变量,所以实际上你将处于相同的位置。虽然静态方法在大多数情况下都可以工作,但是在某些情况下,当内存已满并且另一个活动在应用程序移动到下一个屏幕之前占据前景时,可能会发生这种情况,您的活动进程可能会被终止而您会丢失静态值。然而,Android提供了一些在状态之间保持值或传输它们的选项,例如:

  • 使用Intent,您可以将搜索条件从活动传递到活动(类似于Web http请求)

  • 使用应用程序首选项,您可以保存值并在需要它们的活动中检索它们

  • 使用sqlite数据库,您可以将它们保存在表中并稍后检索它们

  • 如果您只需要保存活动状态,以便在重新启动时,字段将填充其先前选择的值,您可以实现onSaveInstanceState()活动方法 - 请注意,不建议在状态持久性活动之间使用此方法。

通过查看谷歌代码或其他开源Android应用程序中的aegis-shield源代码树,您可以获得偏好,意图和sqlite数据库使用的一些代码示例。


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 667 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信