我开发了一个简单的后台服务,它试图在应用程序被杀死时证明自我抵抗。为此,我返回 onStartCommand - START_STICKY - 很明显!
当我测试终止服务的进程时:
- 从应用程序设置-> 强制停止
- 或在 Eclipse DDMS 透视下停止进程...
我注意到在第一种情况下,服务永远不会重新启动。另一方面,在第二种情况下,重新创建服务并调用 onCreate 方法......
为什么会这样?这两种方法在杀死过程上有什么不同吗?
我开发了一个简单的后台服务,它试图在应用程序被杀死时证明自我抵抗。为此,我返回 onStartCommand - START_STICKY - 很明显!
当我测试终止服务的进程时:
我注意到在第一种情况下,服务永远不会重新启动。另一方面,在第二种情况下,重新创建服务并调用 onCreate 方法......
为什么会这样?这两种方法在杀死过程上有什么不同吗?
这两种方法在杀死过程上有什么不同吗?
是的。在 DDMS 中,“停止进程”会终止进程。使用“强制停止”,不仅进程被终止,而且它被移动到“停止”状态,该应用程序中的任何内容都不会再次运行,直到有人手动运行该应用程序的一个组件(通常:用户从主屏幕)。
您可以在Android 3.1 文档中阅读有关停止状态的更多信息。