任何具有明显服务的应用程序都要求它始终运行。它是产品的一部分,如果它是付费应用程序 - 用户期望它。如何保持服务的活力?
但是,如果Android操作系统感觉到内存压力或者出现问题并且服务崩溃,那么似乎没有办法让服务不被破坏。
确保服务始终运行的最佳方式是什么?
明智地创建第二个服务,偶尔启动“有用”的服务,如果运行它将被忽略?
任何具有明显服务的应用程序都要求它始终运行。它是产品的一部分,如果它是付费应用程序 - 用户期望它。如何保持服务的活力?
但是,如果Android操作系统感觉到内存压力或者出现问题并且服务崩溃,那么似乎没有办法让服务不被破坏。
确保服务始终运行的最佳方式是什么?
明智地创建第二个服务,偶尔启动“有用”的服务,如果运行它将被忽略?
说实话,我不确定这是不是一个好主意。
如果有足够的内存压力,对其他应用程序坚持运行是不公平的。服务也只能在严重的低内存情况下被踢掉。
如果你写了一个收割者服务,这个人也可以被踢出去。
正如你所说“如果它是付费应用程序 - 用户期望它。” - 用户也希望这款应用可以很好地发挥作用
+1“用户希望应用程序可以很好地播放” – Falmarri 2011-02-05 10:08:55
如果您的服务“至关重要”,那么您可以使用startForeground
,它可以为您的服务提供与前台活动相同的优先级。
我刚刚使用AlarmManager和IntentService重写了我的代码,但似乎每当我的应用程序运行并且警报已注册时,它都会跳过其已在运行的自己的实例,死亡。警报每小时也停止执行,无论如何,这有什么意义? – kidalex 2011-02-05 12:30:14
不要这样做。你只会被任务杀手杀死,你的用户不应该杀死你的服务。改用AlarmManager。 – Falmarri 2011-02-05 10:08:08