似乎当我不需要进程间通信时,几乎没有理由使用服务。我所知道的唯一原因是:如果我的进程有一个已启动的服务,则该进程不太可能被杀死。
我可以使用带有dontWantToBeKilled()和canBeKilled()方法的实用程序类,它将启动/停止虚拟服务。除此之外,我不会使用服务。这是对的吗?
答案 0 :(得分:1)
是的,还有其他原因。
您的应用程序在一个进程中运行,只要它需要更多资源就可以被系统杀死。
根据this,正在运行的服务的优先级高于不在前台的Activity,这意味着系统更有可能杀死在后台具有Activity的应用程序进程,而不是有一个服务在后台运行。
服务文档声明:
因此,您可以使用服务来降低应用程序进程被杀的可能性。
答案 1 :(得分:0)
即使Service
在与Activity
相同的过程中运行,也无法保证您的Activity
不会被杀死。
例如,将图片上传到网站的活动 应该启动服务来执行上传,以便上传即可 即使用户离开活动,也会在后台继续。运用 服务保证操作至少具有“服务” 处理“优先级,无论活动发生什么。这是 广播接收机应该使用服务的原因相同 而不是简单地将耗时的操作放在一个线程中。
结论:
如果你想做一个需要一段时间的后台操作而且重要的是它正确完成,请使用Service
。
答案 2 :(得分:0)
如果一个进程开始服务那么没有必要,进程可能会被杀死。实际上进程仍然存在或者不会影响服务。作为完全后台进程。可能是你已经开始进程的情况刚开始服务。所以流程和服务不能相互关联。
AFAIK我没有正确地提出你的最终问题。