在前台启动两项服务?

时间:2016-02-03 04:53:50

标签: android performance android-activity service android-service

为了让我的服务保持活力,我可以在前台提供多项服务吗?

我一次开始提供两项服务,我不希望任何一项服务被销毁。因此,在阅读了几个小时后,我发现解决方案是返回START_STICKY并在我的服务上使用startForeground(...)。但是,我有两个服务,所以我可以将它们都放在前台,并且两者都不会被销毁吗?

1 个答案:

答案 0 :(得分:4)

有几个方面需要考虑。

  1. 首先:如果前台有两个服务,则还必须有两个通知。这被视为安全功能(检查实例this post)。在一个应用程序的状态栏中有两个图标可能会让用户感到困惑,恕我直言的理由足以放弃这个想法。
  2. 如评论中所述:即使从前台开始,服务也可能会被销毁。请记住这一点。然而,根据我的经验,这很少发生,几乎从来没有 - 除了......
  3. ...预装了启动管理器或节能器的设备(例如,许多华为设备)。如果您的应用程序配置不当,您的服务将在屏幕关闭后几秒钟/几分钟内被终止 - 或者在重新启动后不会自动启动。
  4. 所以,一如既往地取决于你想要达到的确切程度;)但对我来说,好像你可以在一个粘性服务中简单地实现两个线程 - 我不能在这里看到任何缺点。

    如果您的应用因任何类型的启动管理器,崩溃或强制关闭而失效,您的用户可能必须再次启动该应用(请参阅this post包括应用状态)。

    希望这有帮助!