我的应用程序使用了一个应该像时钟一样工作的服务——它广播一个滴答声,然后使用处理程序通知自己下一个滴答声。处理程序消息在屏幕关闭时删除,并在屏幕打开时恢复,以避免在暂停时执行任何操作。该服务还以某种速度更新通知。
有时服务只是停止了。我打开屏幕,看到一个非常过时的通知。使用来自服务的数据(通过绑定)的应用程序显示过时的信息。进程列表中没有服务。并且没有错误信息。
服务的onDestroy()
方法包含一个代码来显示类似“我被杀了,请重新启动我”的通知,但没有显示出来。
我知道我可以AlarmManager
用来定期重启我的服务,我可能不得不这样做,但如果有任何其他解决方案,我很乐意知道。
有趣的事实:我从来没有在任何模拟器上遇到过这个问题,也没有在我以前的手机(运行 2.2 的摩托罗拉里程碑)上遇到过问题,也没有来自多个三星 Galaxy S(2 和 3)用户的任何投诉。唯一报告该错误的人是 LG 手机的所有者。现在我在 Nexus 4 上遇到了同样的“服务器突然停止”。LG 阴谋?