在Android被杀之前保存绑定的服务状态

时间:2011-09-15 23:13:55

标签: android service

当OS杀死adroid服务时(由于内存不足或功耗低)。服务在被杀之前会得到通知吗?是否会调用onDestroy()回调?

我们主要担心的是我们能够在服务被杀之前保存服务状态。我们知道一旦资源可用,系统就可以重新启动服务,但是在服务被杀之前保存服务状态的推荐方法是什么?

附件是我们对绑定服务的强制关闭过程的理解的序列图,它包括我们想要发生的事情。

2 个答案:

答案 0 :(得分:1)

  

服务在被杀之前会得到通知吗?是否会调用onDestroy()回调?

可能。这不保证。

  

我们主要担心的是我们能够在服务被杀之前保存服务状态。

服务不应具有仅在RAM中表示的状态。您应该在状态发生变化时保持状态(例如,使用数据库)。

答案 1 :(得分:0)

从API级别14(ICS)开始,如果用户正在删除服务,并且系统决定that it is a good time for a process to trim unneeded memory from its process,则android os会通知服务。这是一个link