Android服务:流程与非流程

Jak*_*ake 17 service android process

将服务放在单独的流程中或将其保留在应用程序的主流程中有什么实际区别?每个场景将用于什么?

小智 11

当服务在主进程中运行时,如果您的应用程序因任何原因崩溃,它将被停止.将服务放入其自身的过程对于某些服务是合理的,这些服务可以从应用程序或服务中使用,这些应用程序或服务应独立于主应用程序运行.


jjN*_*ord 7

我看到将服务放在另一个进程中的唯一原因是

  1. 该应用程序资源丰富,可能会被操作系统迅速杀死.将服务放在一个单独的进程中将分配资源,如果您的应用程序死亡,您的服务将不会.
  2. 如果您的应用程序出现错误并且死亡,您的服务将继续运行.

但是,如果您创建一个好的应用程序并使用良好的编程,则不应遇到这些问题.通过将您的服务放在一个单独的进程中会导致像SharedPreferences和并发数据库访问这样的问题......我建议不要这样做.

更不用说......另一个过程意味着另一个DVM.这比在一个DVM中运行需要更多的资源并且减慢了速度.