响应任务管理器的终止请求

Posted

技术标签:

【中文标题】响应任务管理器的终止请求【英文标题】:Respond to kill requests by task managers 【发布时间】:2011-05-25 15:32:52 【问题描述】:

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

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

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

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

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

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

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

经过大量测试,我发现确实如此。你没有。期间。

以上是关于响应任务管理器的终止请求的主要内容,如果未能解决你的问题,请参考以下文章

禁用任务管理器时如何隐藏任务管理器的错误消息对话框

任务管理器的内存提交大小是啥意思?

Windows 7 的任务管理器有啥作用?如何打开它

为啥任务管理器的进程条不见了?

电脑中的开始-运行和任务管理器的进程是怎么用的

为啥打开任务管理器的时候CPU很高,但是后来又少了是怎么回事