流程和服务之间的区别?

时间:2014-11-26 14:37:50

标签: android service process

我想知道Android应用程序中的进程和服务有什么区别? 我试着很多地研究这个话题,但是还没有清楚我的基础知识......请帮忙吗?

1 个答案:

答案 0 :(得分:5)

流程和服务是两回事:

什么是服务?

关于Service类的大多数混淆实际上都围绕着它不是:

  • 服务不是一个单独的过程。 Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它将在与其所属的应用程序相同的过程中运行。
  • 服务不是线程。它不是从主线程开始工作的手段(以避免应用程序无响应错误)。

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

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

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

什么是流程

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

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

相关问题