使用Android 2.1+。我有一个服务器不时被操作系统杀死(由于内存压力,我猜)。
此服务使用类的静态成员字段维护某些状态。我期待静态字段保持其值,尽管操作系统会杀死并重新启动服务。
但似乎不会发生这样的事情。重新启动后,静态变量将重置为默认值。 它应该发生什么?我应该使用另一种方法来保持持久状态,尽管杀死/重启?
答案 0 :(得分:7)
是的,这是您的服务被杀死时发生的情况。程序从内存中取出,当它重新加载到内存中时,静态变量的默认值都是假定的。换句话说,程序的字节代码不能从执行变为执行。
通常认为使用静态变量来保持状态是不好的。尝试将它们存储在presistent存储中,如sqlite数据库。