保持TileService活跃?

时间:2016-07-10 19:06:57

标签: android service android-7.0-nougat

我有一个Tile,当它处于活动状态时,运行一个计时器,执行这五分钟的任务,然后在一段时间后返回到它的非活动状态。

然而,我遇到的问题是服务被杀死了。当计时器启动时我已经调用了startForeground(id),但我的服务仍然被杀死了。我还要从START_STICKY返回onStartCommand(intent, flags, startID)

无论如何要绝对防止它被杀死,或者我只是运气不好?

1 个答案:

答案 0 :(得分:1)

我设法通过@ CommonWare的建议来解决这个问题。我将所有逻辑抽象为常规Service类,并从我的Tile服务类调用startService()

我遇到的一个障碍是弄清楚如何将Tile实例添加到新服务(处理更新磁贴的文本和状态),但通过使用Application类来保存参考来解决这个问题到瓷砖。 (TileService在调用startService()

之前,每次onClick都会更新此引用

这可能不是最干净,最好的方式,但这是我现在选择推出的方式。