我应该在后台使用 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 thread
和 start-sticky
的持续服务,那么优化应用和 OS 怀疑您的应用。您的应用将被视为耗电。
Intentservice
工作完成后自行终止。正常服务是否满足您的要求,只有您可以控制您的服务。
解法:
如我所说将普通服务设为前台服务。参见 here。这将 通知 用户,直到您的 服务为 运行。并且不会因为以上原因被OS杀死。
我应该为将 运行 在后台运行的秒表使用什么服务 class
在性能方面我应该使用哪个。
这是一个老问题,有很多关于 Service 和 IntentService 之间差异的答案。也许你可以在那里找到一些东西。
根据个人经验,我会说它们并没有太大的不同。就像您使用它们的方式一样。我会说坚持使用您认为最适合您的应用程序的整体。
Service vs IntentService
在这种情况下,您应该使用前台服务(使用 Service 而不是 IntentService
)。
原因:
- Android 奥利奥 8.0 定义 Background Execution Limits。所以您将无法保证使用寿命。
- 您的应用也在 Doze mode & Standby . 中被杀死
- 如果您是 运行 具有
long thread
和start-sticky
的持续服务,那么优化应用和 OS 怀疑您的应用。您的应用将被视为耗电。 Intentservice
工作完成后自行终止。正常服务是否满足您的要求,只有您可以控制您的服务。
解法:
如我所说将普通服务设为前台服务。参见 here。这将 通知 用户,直到您的 服务为 运行。并且不会因为以上原因被OS杀死。