没有调用Service的onDestroy()方法的情况?

spa*_*y21 6 android android-service ondestroy

我知道可能永远不会调用Service的onDestroy()方法,但是有人可以告诉我何时会出现这种情况?我特别感兴趣的是服务是否可能被杀死,但它的VM将继续运行.

我问,因为我有一个服务在服务的onStartCommand()方法中注册ContentObservers并取消注册它们onDestroy().如果从未调用过该服务的onDestroy()方法,因为整个虚拟机(以及它创建的观察者)都被杀死了.但我不知道是否有可能为一个服务"走开"没有的onDestroy()被调用,而它创造的观察员将生活和继续得到改变.

Com*_*are 10

我知道可能永远不会调用Service的onDestroy()方法,但是有人可以告诉我何时会出现这种情况?

这里有三个我的头顶:

  • 如果用户强制您从"设置"应用中停止

  • 如果Android匆忙需要RAM(例如,处理来电)并选择终止您的进程以释放该RAM

  • 您从DDMS终止进程

此外,如果您的服务在某处遇到未处理的异常,Android可能会认为该服务已失效并跳过onDestroy().我不确定这个,因为我没有特别尝试过.

但我不知道是否有可能为一个服务"走开"没有的onDestroy()被调用,而它创造的观察员将生活和继续得到改变.

除了我上面提到的未处理异常的可能性之外,我有理由确定如果进程将在onDestroy()未调用的条件下终止.