Activity, Service,Task, Process and Thread之间的关系

简介: Activity, Service,Task, Process and Thread之间到底是什么关系呢? 首先我们来看下Task的定义,Google是这样定义Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in

Activity, Service,Task, Process and Thread之间到底是什么关系呢?

首先我们来看下Task的定义,Google是这样定义Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file. 这意思就是说Task实际上是一个Activity栈,通常用户感受的一个Application就是一个Task。从这个定义来看,Task跟 Service或者其他Components是没有任何联系的,它只是针对Activity而言的。

而Service和Activity只是Android提供的Components中的两种,除此之外还有Content Provider和Broadcast Receiver。

通常情况下,对于一个应用程序的所有的Components都会在同一个Process产生的Main Thread中运行。但是我们也可以让不同的Component运行在不同的Process当中,我们可以通过设置这些Components的属性来使其运行在不同的Process当中,例如:<activity android: process = "processA">。当然我们也可以设置使他们运行在同一个Process当中,即使他们不在同一个应用程序当中也可以(前提是这些应用程序使用的是同一个Linux User ID,并且被同一个机构签名)。

那么Thread跟这些Components又有什么关系呢?

通常我们会将一些长时间或大计算量的操作用一个单独的线程来运行,以防止类似操作阻塞Process。比如我们可以为一个Service(如播放音乐的Service)产生一个Thread,我们也可以为Methods来产生一个线程。总之当你不想让某些操作阻塞Main Thread的时候,create a thread!

目录
打赏
0
0
0
0
498
分享
相关文章
在Activtiy和在Service中创建一个Thread的区别?
在Activtiy和在Service中创建一个Thread的区别?
98 0
|
5月前
|
详解Task 和 ValueTask 的使用区别
详解Task 和 ValueTask 的使用区别
106 0
|
7月前
|
Thread 类中的start() 和 run() 方法有什么区别
【8月更文挑战第9天】Thread 类中的start() 和 run() 方法有什么区别
421 0
|
9月前
call()与apply()的作用与区别?
call()与apply()的作用与区别?
|
10月前
call()与apply()的作用与区别
call()与apply()的作用与区别
82 1
Thread 类中的 start () 和 run () 方法的区别
Thread 类中的 start () 和 run () 方法的区别
80 0
Service和Thread有什么关系
其实我们最大的疑惑莫过于,认为Thread也可以在后台执行,显然这是错误的,你觉得在一个Activity里new一个Thread,在run方法里执行一些定时耗时操作,应用退出进程不死的情况下,run方法里还会执行吗?显然是不会的
Service和Thread有什么关系
Callback、Listener、Worker、Manager的命名说明
Callback、Listener、Worker、Manager的命名说明
106 0