在前台启动两个服务?

Ruc*_*nia 6 performance service android android-service android-activity

为了让我的服务保持活跃,我可以在前台运行多个服务吗?

我同时启动两个服务,我不希望它们中的任何一个被破坏。因此,在阅读了几个小时后,我发现解决方案是返回并在我的服务上START_STICKY使用。startForeground(...)但是,我有两个服务,那么我可以让它们都在前台,并且都不会被破坏吗?

Tri*_*mon 6

有几个方面需要考虑。

  1. 首先:如果您在前台有两个服务,则也必须有两个通知。这被认为是一项安全功能(例如查看这篇文章)。一个应用程序的状态栏中有两个图标可能会让用户感到非常困惑,恕我直言,这足以成为放弃这一想法的理由。
  2. 正如评论中所述:即使在前台启动,服务也可能会被破坏。请记住这一点。然而,根据我的经验,这种情况很少发生,几乎从来没有 - 除非......
  3. ...预装启动管理器或节能器的设备(例如许多华为设备)。如果您的应用程序配置不正确,您的服务将在屏幕关闭后几秒/分钟被终止 - 或者重新启动后不会自动启动。

因此,一如既往,这取决于您想要实现的具体目标;)但对我来说,似乎您可以简单地在一个粘性服务中实现两个线程 - 我在这里看不到任何缺点。

如果您的应用程序因任何类型的启动管理器、崩溃或强制关闭而停用,您的用户可能必须再次启动应用程序(请参阅这篇文章,包括应用程序状态)。

希望这可以帮助!