答案 0 :(得分:1)
这是一个古老的问题,其中包含有关Service和IntentService之间差异的大量答案。也许你可以在那里找到一些东西。
根据个人经验,我会说它们并没有太大的不同。只是您使用它们的方式。我会说坚持您认为最适合您的应用程序的方式。
答案 1 :(得分:1)
在这种情况下,您应该使用前台服务(通过 Service 代替IntentService
)。
原因:
long thread
和start-sticky
运行连续服务,那么优化应用程序和操作系统就会怀疑您的应用程序。您的应用将被视为电池耗电。Intentservice
完成工作后会自杀。仅在您可以控制服务的情况下,普通服务是否符合您的要求。解决方案:
如我所说,进行常规服务作为前台服务。参见here。这将通知用户,直到您的服务正在运行。并且不会由于任何上述原因被操作系统杀死。