我应该在后台使用 class 秒表到 运行。 "IntentService" 或 "service"

Which should I use class for the stopwatch to run in the background. "IntentService" or "service"

我应该为将 运行 在后台运行的秒表使用什么服务 class

在性能方面我应该使用哪个。

这是一个老问题,有很多关于 Service 和 IntentService 之间差异的答案。也许你可以在那里找到一些东西。

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

Service vs IntentService

在这种情况下,您应该使用前台服务(使用 Service 而不是 IntentService)。

原因:

  • Android 奥利奥 8.0 定义 Background Execution Limits。所以您将无法保证使用寿命。
  • 您的应用也在 Doze mode & Standby .
  • 中被杀死
  • 如果您是 运行 具有 long threadstart-sticky 的持续服务,那么优化应用和 OS 怀疑您的应用。您的应用将被视为耗电。
  • Intentservice 工作完成后自行终止。正常服务是否满足您的要求,只有您可以控制您的服务。

解法:

如我所说将普通服务设为前台服务。参见 here。这将 通知 用户,直到您的 服务为 运行。并且不会因为以上原因被OS杀死。