流程和服务之间的区别?

Rub*_*bal 6 service android process

我想知道android应用程序中的进程和服务之间的区别是什么?我尝试了很多有关此主题的研究,但还没有弄清楚我的基础知识...请帮忙吗?

pek*_*eko 5

流程和服务是两个不同的事物:

什么是服务?

关于Service类的最困惑实际上是围绕它不是什么:

  • 服务不是独立的过程。Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它将与它所属的应用程序在同一进程中运行。
  • 服务不是线程。它本身并不是在主线程之外工作的一种方式(以避免Application Not Responding错误)。

因此,服务本身实际上非常简单,提供两个主要功能:

  • 应用程序的一种功能,可以在后台告知系统它要执行的操作(即使当用户没有直接与应用程序交互时)。这对应于对Context.startService()的调用,该调用要求系统安排服务的工作计划,直到运行该服务或其他人明确停止它为止。
  • 应用程序将其某些功能公开给其他应用程序的工具。这对应于对Context.bindService()的调用,该调用允许与该服务建立长期连接以便与其进行交互。

来源:http : //developer.android.com/reference/android/app/Service.html

什么是过程

当应用程序组件启动并且该应用程序没有任何其他组件在运行时,Android系统将通过一个执行线程为该应用程序启动一个新的Linux进程。默认情况下,同一应用程序的所有组件都在同一进程和线程(称为“主”线程)中运行。如果某个应用程序组件启动并且已经存在该应用程序的进程(因为存在该应用程序中的另一个组件),则该组件将在该进程中启动并使用相同的执行线程。但是,您可以安排应用程序中的不同组件在单独的进程中运行,并且可以为任何进程创建其他线程。

来源:http : //developer.android.com/guide/components/processes-and-threads.html#Processes