我实现了一个粘性服务,当我强制关闭应用程序时,我看到该活动的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()
不能保证在任何组件上都被调用。
我需要捕获那个事件以便关闭文件。
那就别让它们开着。