Android:当服务被杀死时,我们如何能够保留服务状态以便以后恢复?

Ele*_*rks 5 android android-service android-lifecycle

我们创建了一个应用程序,它本质上是一个带有一些装饰功能的计时器/秒表.我们定义了一个服务,该服务勾选时钟并警告订阅某些计时器事件的听众(活动等).

我们希望能够保存计时器/秒表的状态(经过的秒数,直到下一个事件的时间,用户提供的配置等)每当android杀死我们的服务(用于记忆回忆),然后恢复服务的状态当用户恢复应用程序时. 对我们来说,这意味着可能保留和恢复对象及其状态. 我们的服务有很多组成.基本上,我们的服务由我们所有的计时器模型组成,其中服务死亡时死亡.

有什么策略可以坚持服务的状态?对于我们的目的,PreferencesManager可能不够强大,尽管它可能是.我们可以依靠Service onDestroy()方法来保存状态(例如在SQLite中)吗?如果android决定杀死我们的进程,它是否甚至保证将调用onDestroy()服务?

谢谢!

Com*_*are 7

我们定义了一个服务,该服务勾选时钟并警告订阅某些计时器事件的听众(活动等)

你不需要一直运行服务,看时钟滴答.这种方法是用户敌对的,因为它没有充分的理由占用系统RAM.用于AlarmManager控制"某些计时器事件",并在其余时间保持服务内存不足.

我们希望能够保存计时器/秒表的状态(经过的秒数,到下一个事件的时间,用户提供的配置等)

不要坚持"经过几秒钟".持续计时器/秒表开始的时间.经过的秒数就是减法的问题.

不要坚持"下次活动的时间".坚持时间下一个事件.

这些值不会持续变化,因此可以在计时器启动时或计时器生命周期中的其他主要生命周期事件时保持不变.

有什么策略可以坚持服务的状态?

使用SharedPreferences您自己选择的数据库或文件格式.

我们可以依靠Service onDestroy()方法来保存状态(例如在SQLite中)吗?

没有.

如果android决定杀死我们的进程,它是否甚至保证将调用onDestroy()服务?

它不能保证被调用.