我实现了一个粘性服务,当我强制关闭应用程序时,我看到该活动的ondestroy()被调用。但这项服务显然什么也没做。
这是Logcat:

07-01 22:35:30.397: DEBUG/ActivityMine(6505): onDestroy()

07-01 22:35:32.667: INFO/ActivityManager(71): Force stopping package my.large.package uid=10036

07-01 22:35:32.667: WARN/ActivityManager(71): Scheduling restart of crashed service my.large.package/.service.ServiceCommunicator in 5000ms

07-01 22:35:32.667: INFO/Process(71): Sending signal. PID: 6505 SIG: 9

07-01 22:35:32.687: INFO/ActivityManager(71):   Force stopping service ServiceRecord{451f65b8 my.large.package/.service.ServiceCommunicator}

如您所见,ServiceCommunicator()不调用:stopService()、finalize()或onDestroy()!
我在这三个电话里都打过记录电话。
我怎么知道服务什么时候强制关闭?我需要捕获那个事件以便关闭文件。

最佳答案

我怎么知道服务什么时候强制关闭?
你没有。onDestroy()不能保证在任何组件上都被调用。
我需要捕获那个事件以便关闭文件。
那就别让它们开着。

10-01 05:33