android - 在前台启动两个服务?

标签 android performance android-activity service android-service

为了让我的服务保持活跃,我能否在前台拥有多个服务?

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

最佳答案

有几个方面需要考虑。

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

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

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

希望这对您有所帮助!

关于android - 在前台启动两个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35168769/

相关文章:

android - 如何将两个 Android Activity 绑定(bind)到一个服务?

javascript - 为什么第三个选项比正则表达式更好?

Python字典与列表,哪个更快?

performance - Julia 似乎很慢

java - 编译 Java 硬件 API 以在 Android 中运行。

android - 为什么 android 数据绑定(bind)库没有按预期工作?

android - 菜单项点击,Fragments显示

android - 如何在android中停止intentservice?

android - 谷歌地图未显示在谷歌地图 API v2 中

android - 使用 mpchart 使折线图占据父级的全宽?