我的情况:
我创建了一个Android服务,该服务在应用程序启动时启动。该服务由一个等待5秒的简单线程组成,写入日志消息并再次等待。
关闭应用程序后(使用后退按钮),Android选择重新启动我的服务,因为我在OnStartCommand中返回START_STICKY。 在调试应用程序时,我实际上可以使用DDMS来终止进程。 Android再次选择重启服务。这是根据手册预期的。
我还安装了一个任务管理器,用它来“杀死”实例。时髦的是,现在我的服务不再重新启动了。
时髦的是:在任何一种情况下,都不会调用我的类的破坏代码。我的等待线程没有引发InterruptedException。我的应用程序似乎无法知道它正在被销毁。
我的问题:
我怎样才能解决这个问题,并回应杀戮请求?我已经注意到DVM没有sun.misc.Signal和sun.misc.SignalHandler用于正确的信号处理(如果它甚至被任务杀手使用)。
我需要知道我的应用程序是否被销毁,因此我可以正确关闭文件句柄,数据库连接等。
非常感谢您的帮助。
答案 0 :(得分:0)
我如何解决这个问题,并回应杀戮请求?
你没有。 OTOH,这个任务杀手行为应该已经在Android 2.2中消除了,所以它最终不会成为问题。