我想知道Android应用程序中的进程和服务有什么区别?

我试着很多地研究这个话题,但还没有清楚我的基础知识……请帮忙吗?

解决方法:

流程和服务是两回事:

什么是服务?

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

>服务不是一个单独的过程. Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它将在与其所属的应用程序相同的过程中运行.

>服务不是一个线程.它本身不是从主线程开始工作的手段(以避免应用程序无响应错误).

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

>应用程序的工具,告诉系统它想要在后台执行的操作(即使用户没有直接与应用程序交互).这对应于对Context.startService()的调用,该调用要求系统调度服务的工作,直到服务或其他人明确停止它为止.

>应用程序的一种工具,可将其某些功能暴露给其他应用程序.这对应于对Context.bindService()的调用,它允许对服务进行长期连接以便与服务进行交互.

什么是流程

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

标签:android,process,service