专栏首页向治洪Activity, Service,Task, Process and Thread之间的关系

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 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 条评论
登录 后参与评论

相关文章

  • 史上最全的Android面试题集锦

    在Android开发中,不管是插件化还是组件化,都是基于Android系统的类加载器ClassLoader来设计的。只不过Android平台上虚拟机运行的是De...

    xiangzhihong
  • 仿淘宝购买详情页购买缩小动画

    偶尔一个时候,我们产品的详情页面也做的和淘宝神识,为了加强 的体验,我们加了一些动画,下面说说淘宝详情的缩放详情页的动画怎么做的吧。 先上两张图, ? ? 其实...

    xiangzhihong
  • android守护进程

    Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要(见不得人)的任务。而一些安全软件,如360等,会有结束...

    xiangzhihong
  • Android Service完全解析,关于服务你所需知道的一切(上)

    版权声明:本文出自郭霖的博客,转载必须注明出处。 https://blog.csdn.net...

    用户2192970
  • Android Service完全解析,关于服务你所需知道的一切(上)

    相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为An...

    用户1158055
  • Java Process destroy方法kill进程,返回码测试

    Java代码: package com.spiro; import java.io.IOException; public class Main { ...

    囚兔
  • Service三问

    作为Android四大组件之一,Service是一个可以后台运行的组件,执行长时间运行且不需要用户交互的任务。今天的三问就是关于Service:

    码上积木
  • Android学习笔记(八)深入分析Service启动、绑定过程

      Service是Android中一个重要的组件,它没有用户界面,可以运行在后太做一些耗时操作。Service可以被其他组件启动,甚至当用户切换到其他应用时,...

    codingblock
  • 安卓四大组件之Service-服务

    Youngxj
  • IIS 部署 Python Django

    知道的,百度上搜出来的东西质量令人唏嘘。当你求助的时候多半还得靠自己,或者靠Google

    py3study

扫码关注云+社区

领取腾讯云代金券