Android 服务+;安卓:进程“;vs";意向服务

Android 服务+;安卓:进程“;vs";意向服务,android,multithreading,service,process,intentservice,Android,Multithreading,Service,Process,Intentservice,正如我们所知,服务和IntentService之间的区别在于,IntentService隐式生成工作线程,而服务运行在进程主(UI)线程上 这显然表明了它们之间的区别 但我的问题是,两者之间有什么区别吗 Service+android:process“vs”IntentService 我的意思是说,如果我们在一个单独的进程中启动服务,那么它们之间除了服务使用进程而IntentService使用线程之外,没有任何区别。您完全误解了进程和线程的概念 IntentService run in a di

正如我们所知,服务和IntentService之间的区别在于,IntentService隐式生成工作线程,而服务运行在进程主(UI)线程上

这显然表明了它们之间的区别

但我的问题是,两者之间有什么区别吗

Service+android:process“vs”IntentService


我的意思是说,如果我们在一个单独的进程中启动服务,那么它们之间除了服务使用进程而IntentService使用线程之外,没有任何区别。

您完全误解了
进程
线程
的概念

IntentService run in a diffrent Thread but run in main process.
默认情况下,每个应用程序只有一个进程,其中所有代码都将运行,包括
服务
活动
意向服务

当您在新进程中启动
服务
时,该
服务
已分配了单独的内存和堆区域。它不会直接与主进程通信。出于通信目的,您需要使用
AIDL


有关更多信息,请检查此项

您完全误解了
过程
线程
的概念

IntentService run in a diffrent Thread but run in main process.
默认情况下,每个应用程序只有一个进程,其中所有代码都将运行,包括
服务
活动
意向服务

当您在新进程中启动
服务
时,该
服务
已分配了单独的内存和堆区域。它不会直接与主进程通信。出于通信目的,您需要使用
AIDL


有关更多信息,请检查此

为什么要在不同的进程中运行服务?IntentService是按需处理异步请求(表示为Intent)的服务的基类。在服务类中,您可以同步处理这些请求,因为它将在主线程上运行,您可能需要在服务类中创建单独的线程。@Pr38y如果我在服务中生成工作线程,那么它也将在异步请求处理程序中转换,不是吗?不,不会。它将是同步的,意味着一次可以运行多个线程。IntentService仅使用一个工作线程来服务所有请求。如果您要扩展服务类,则取决于您需要多少工作线程,您可以创建它,这就是为什么它可以服务于同步请求。为什么要在不同的进程中运行服务?IntentService是按需处理异步请求(表示为Intent)的服务的基类。在服务类中,您可以同步处理这些请求,因为它将在主线程上运行,您可能需要在服务类中创建单独的线程。@Pr38y如果我在服务中生成工作线程,那么它也将在异步请求处理程序中转换,不是吗?不,不会。它将是同步的,意味着一次可以运行多个线程。IntentService仅使用一个工作线程来服务所有请求。而如果您要扩展服务类,则取决于您需要多少工作线程,你可以创建,这就是为什么它可以服务同步请求。@阿米蒂亚达夫,你读过我的答案吗???。如果你在不同的流程中启动服务,那么你就不能直接与其他流程中的活动进行通信。@kalyan pvs,我同意,如果我在单独的流程中启动服务,我们必须使用AIDL。@阿米蒂亚达夫,你读过我的答案吗回答???。如果您在不同的流程中启动服务,则您无法与其他流程中的活动直接沟通。@kalyan pvs,我同意如果我在单独的流程中启动服务,我们必须使用AIDL。