1

为了让我的服务保持活力,我可以在前台有多个服务吗?在前台启动两项服务?

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

+1

我不明白你的问题?你想要两个“服务”保持活力还是想让你的活动保持活力?在“服务”中返回粘性不会影响任何“活动”的生命周期。 –

+1

@RuchirBaronia可能你应该只使用一个服务,并在该服务中创建两个线程来满足你的目的。 –

+0

@XaverKapeller我不关心我的活动。我只想在后台运行长时间运行的服务,即使在手机屏幕处于睡眠状态以及应用程序关闭时也是如此。 –

回答

1

有几个方面需要考虑。

  1. 首先:如果您在前台有两个服务,则还必须有两个通知。这被视为安全功能(例如检查this post)。在一个应用程序的状态栏中有两个图标可能会让用户非常困惑,并且恕我直言,足以让这个想法得到解决。
  2. 正如评论中所述:即使从前台开始,服务可能会被销毁。请牢记这一点。然而,根据我的经验,这种情况很少发生,几乎从不 - 除了...
  3. ...装有预装启动管理器或节能器(例如许多华为设备)的设备。如果您的应用程序配置不当,您的服务将在屏幕关闭后几秒/分钟内死亡 - 或者重新引导后不会自动启动。

所以,一如既往这取决于你确切想达到什么;)但对我来说,它看起来像,如果你可以简单地在一个粘服务实现两个线程 - 我不能任何在这里看到缺点。

如果您的应用因任何类型的启动管理器,崩溃或强制关闭而失活,您的用户可能需要重新启动应用(请参阅this post,包括应用状态)。

希望这会有所帮助!

+0

如何在第三点中说明“适当配置” –

+0

对此,您无能为力。如果制造商提供阻止您正常工作的应用程序,则您唯一能做的就是告诉用户他们需要如何配置这些工具。对不起,说...... :( – Trinimon