我们创建了一个应用程序,本质上是一个计时器/秒表,具有一些精心设计的功能。我们定义了一个服务,用于计时并提醒订阅某些计时器事件的侦听器(活动等)。
我们希望能够在 Android 终止我们的服务(用于内存回收)时保存计时器/秒表的状态(经过的秒数、距下一个事件的时间、用户提供的配置等),然后恢复服务的状态当用户恢复应用程序时。对于我们来说,这意味着可能保存和恢复对象及其状态。我们的服务中有很多成分。基本上,我们的服务由所有计时器模型组成,当服务终止时,计时器模型也会终止。
有哪些策略可以持久保存服务状态? PreferencesManager 对于我们的目的来说可能不够强大,尽管它可能是。我们可以依靠 Service onDestroy() 方法来保存状态(比如在 SQLite 中)吗?如果 android 决定终止我们的进程,是否可以保证调用 onDestroy() 服务?
谢谢你!
我们定义了一个服务,用于计时并提醒订阅某些计时器事件的侦听器(活动等)
您不需要让服务一直运行,看着时钟滴答作响。这种方法对用户不利,因为它无缘无故地占用系统 RAM。使用AlarmManager
控制“某些计时器事件”,并在其余时间让您的服务保持在内存之外。
我们希望能够保存计时器/秒表的状态(经过的秒数、距下一个事件的时间、用户提供的配置等)
不要坚持“经过的秒数”。保留计时器/秒表开始时的时间。那么经过的秒数就是减法的问题。
不要坚持“直到下一个事件的时间”。坚持时间of下一个活动。
这些值不会持续变化,因此当计时器启动或计时器生命周期中的其他主要生命周期事件时可以保留。
有哪些策略可以持久保存服务状态?
使用数据库,SharedPreferences
,或您自己选择的文件格式。
我们可以依靠 Service onDestroy() 方法来保存状态(比如在 SQLite 中)吗?
No.
如果 android 决定终止我们的进程,是否可以保证调用 onDestroy() 服务?
不保证会被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)