我应该使用哪个类来使秒表在后台运行。 “ IntentService”或“服务”

时间:2018-07-20 16:35:13

标签: java android service intentservice

在后台运行的秒表应该使用什么服务类

就性能而言,我应该使用哪个。

enter image description here

2 个答案:

答案 0 :(得分:1)

这是一个古老的问题,其中包含有关Service和IntentService之间差异的大量答案。也许你可以在那里找到一些东西。

根据个人经验,我会说它们并没有太大的不同。只是您使用它们的方式。我会说坚持您认为最适合您的应用程序的方式。

Service vs IntentService

答案 1 :(得分:1)

在这种情况下,您应该使用前台服务(通过 Service 代替IntentService)。

原因:

  • Android Oreo 8.0定义了 Background Execution Limits 。因此,您将无法保证使用寿命。
  • 您的应用还被 Doze mode & Standby 杀死。
  • 如果您使用long threadstart-sticky运行连续服务,那么优化应用程序和操作系统就会怀疑您的应用程序。您的应用将被视为电池耗电。
  • Intentservice完成工作后会自杀。仅在您可以控制服务的情况下,普通服务是否符合您的要求。

解决方案:

如我所说,进行常规服务作为前台服务。参见here。这将通知用户,直到您的服务正在运行。并且不会由于任何上述原因被操作系统杀死。