0

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

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

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

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

我的问题:
我怎样才能解决这个问题,并响应杀死请求?我已经注意到 DVM 缺少 sun.misc.Signal 和 sun.misc.SignalHandler 来进行正确的信号处理(如果任务杀手甚至使用它的话)。

我有点需要知道我的应用程序是否被破坏,这样我才能正确关闭文件句柄、数据库连接等。

非常感谢您的帮助。

4

1 回答 1

0

我怎样才能解决这个问题,并响应终止请求?

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

于 2011-05-25T15:52:11.927 回答