响应任务管理器的kill请求

时间:2011-05-25 15:32:53

标签: android service task persistent

我的情况:
我创建了一个Android服务,该服务在应用程序启动时启动。该服务由一个等待5秒的简单线程组成,写入日志消息并再次等待。

关闭应用程序后(使用后退按钮),Android选择重新启动我的服务,因为我在OnStartCommand中返回START_STICKY。 在调试应用程序时,我实际上可以使用DDMS来终止进程。 Android再次选择重启服务。这是根据手册预期的。

我还安装了一个任务管理器,用它来“杀死”实例。时髦的是,现在我的服务不再重新启动了。

时髦的是:在任何一种情况下,都不会调用我的类的破坏代码。我的等待线程没有引发InterruptedException。我的应用程序似乎无法知道它正在被销毁。

我的问题:
我怎样才能解决这个问题,并回应杀戮请求?我已经注意到DVM没有sun.misc.Signal和sun.misc.SignalHandler用于正确的信号处理(如果它甚至被任务杀手使用)。

我需要知道我的应用程序是否被销毁,因此我可以正确关闭文件句柄,数据库连接等。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

我如何解决这个问题,并回应杀戮请求?

你没有。 OTOH,这个任务杀手行为应该已经在Android 2.2中消除了,所以它最终不会成为问题。