2011-02-05 63 views
1

任何具有明显服务的应用程序都要求它始终运行。它是产品的一部分,如果它是付费应用程序 - 用户期望它。如何保持服务的活力?

但是,如果Android操作系统感觉到内存压力或者出现问题并且服务崩溃,那么似乎没有办法让服务不被破坏。

确保服务始终运行的最佳方式是什么?

明智地创建第二个服务,偶尔启动“有用”的服务,如果运行它将被忽略?

+2

不要这样做。你只会被任务杀手杀死,你的用户不应该杀死你的服务。改用AlarmManager。 – Falmarri 2011-02-05 10:08:08

回答

3

说实话,我不确定这是不是一个好主意。

如果有足够的内存压力,对其他应用程序坚持运行是不公平的。服务也只能在严重的低内存情况下被踢掉。

如果你写了一个收割者服务,这个人也可以被踢出去。

正如你所说“如果它是付费应用程序 - 用户期望它。” - 用户也希望这款应用可以很好地发挥作用

+1

+1“用户希望应用程序可以很好地播放” – Falmarri 2011-02-05 10:08:55

1

如果您的服务“至关重要”,那么您可以使用startForeground,它可以为您的服务提供与前台活动相同的优先级。

+0

我刚刚使用AlarmManager和IntentService重写了我的代码,但似乎每当我的应用程序运行并且警报已注册时,它都会跳过其已在运行的自己的实例,死亡。警报每小时也停止执行,无论如何,这有什么意义? – kidalex 2011-02-05 12:30:14