0

我正在开发三种不同的服务,并且在设备启动时,一项服务启动另外两项服务。现在它工作正常,但有时我的服务崩溃并重新启动。我知道这种行为在服务中很常见,如果内存不足,那么回收内存服务会自行重新启动。

我需要跟踪服务信息,例如获取服务崩溃时间。现在,我通过在中编写代码onstartCommand()和停止时间来检索服务开始时间onDestroy()

我观察到的是onDestroy()服务崩溃时代码中的停止时间不会执行。那么有没有办法获得服务崩溃时间?

4

1 回答 1

0

一些想法:

  • 如果它崩溃了,它会在日志文件中留下痕迹,这里有一些关于阅读它的评论:Android 从手机读取错误日志

  • 如果它被系统以正常方式关闭,它应该通过onDestroy。

  • 如果是通过别处报道过的略显神秘的“关闭,重启”效果,那么它似乎并没有命中日志,但是这两个事件在时间上似乎很接近,而且这种效果似乎被阻止了使服务在单独处理中运行。(Android 服务 onCreate 被多次调用,而没有调用 onDestroy并且可能Service 被 AlarmManager 重新创建)。

  • 从状态管理的角度来看,如果您存储服务最后一次做某事的时间(即保存它做某事的时间,并在每次做某事时更新它),那么您将有一个很好的估计。

于 2013-04-17T16:02:57.680 回答