为了让我的服务保持活跃,我能否在前台拥有多个服务?
我同时启动两个服务,我不希望其中任何一个被破坏。因此,阅读了几个小时后,我发现解决方案是返回 START_STICKY
并使用 startForeground(...)
在我的服务上。但是,我有两个服务,那么我可以让它们都在前台,而且都不会被破坏吗?
最佳答案
有几个方面需要考虑。
- 首先:如果您在前台有两个服务,那么您也必须有两个通知。这被视为一项安全功能(例如检查 this post )。一个应用程序的状态栏中有两个图标可能会让用户感到困惑,恕我直言,这是放弃这个想法的充分理由。
- 如评论中所述:即使在前台启动,服务也可能会被破坏。请记住这一点。然而,根据我的经验,这种情况很少发生,几乎从不发生——除了……
- ... 预装启动管理器或节能器的设备(例如许多华为设备)。如果您的应用配置不当,您的服务将在屏幕关闭后数秒/分钟终止 - 或者它不会在重启后自动启动。
因此,一如既往,这取决于您想要实现的目标 ;) 但对我来说,您似乎可以简单地在一个粘性服务中实现两个线程 - 我在这里看不到任何缺点。
如果您的应用程序因任何类型的启动管理器、崩溃或强制关闭而停用,您的用户可能必须再次启动该应用程序(请参阅 this post,包括应用程序状态)。
希望这对您有所帮助!
关于android - 在前台启动两个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35168769/