我有一个Tile,当它处于活动状态时,运行一个计时器,执行这五分钟的任务,然后在一段时间后返回到它的非活动状态。
然而,我遇到的问题是服务被杀死了。当计时器启动时我已经调用了startForeground(id)
,但我的服务仍然被杀死了。我还要从START_STICKY
返回onStartCommand(intent, flags, startID)
。
无论如何要绝对防止它被杀死,或者我只是运气不好?
答案 0 :(得分:1)
我设法通过@ CommonWare的建议来解决这个问题。我将所有逻辑抽象为常规Service
类,并从我的Tile服务类调用startService()
。
我遇到的一个障碍是弄清楚如何将Tile实例添加到新服务(处理更新磁贴的文本和状态),但通过使用Application
类来保存参考来解决这个问题到瓷砖。 (TileService
在调用startService()
)
这可能不是最干净,最好的方式,但这是我现在选择推出的方式。