简单解释Android中的任务、进程和线程

一、任务

要解释什么是Android中的任务,需要提到应用程序(application)和Activity。

Activity:Android中最基本的应用程序组件。一个Activity通常就是一个单独的屏幕,用于呈现数据和与用户进行交互。

应用程序:比如说qq软件就是一个应用程序,通常由多个Activity组成。

有了上面两个概念,就可以很好理解任务了。一个Android任务通常会涵盖多个Activity,而这些Activity可能分别属于不同的应用程序(application)。

从Activity的角度来说,任务就是Activity的堆栈。

 

Activity和任务那点事儿

Activity和任务的关联、任务中Activity的行为方式都被启动那个Activity的Intent对象中设置的一系列flags和manifest文件中Activity的<Activity>元素的一系列属性之间的交互所控制。

intent flags:

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_CLEAR_TOP

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

FLAG_ACTIVITY_SINGLE_TOP

<Activity>属性:

taskAffinity

launchMode

allowTaskReparenting

clearTaskOnLaunch

alwaysRetainTaskState

finishOnTaskLaunch

 

启动任务:

当一个Activity指定了一个”android.intent.action.MAIN“作为动作、”android.intent.category.LAUNCHER“作为类别的intent过滤器时,它会被设置为一个任务的入口点。

如果不想让用户再次返回一个Activity,将finishOnTaskLaunch设置为”true“

 

二、Android进程

组件运行所在的进程由manifest文件来控制。组件元素如<Activity>、<service>、<receiver>、<provider>都有一个进程属性来指定组件应当运行于哪个进程之内。<Application>元素也有一个进程属性,设定所有组件的进程属性默认值。

 

三、Android线程

Android线程在代码中以标准的java thread对象创建。Android提供了很多便于管理线程的类:looper用于在线程中运行一个消息循环,handler用于处理消息,handlerthread用于使用一个消息循环启用线程。

 

其实android进程和线程和在linux里没有什么区别。


PS:

通常意义下的线程与进程

线程是进程的一个实体,是CPU 调度和分配的基本单位,其本身不拥有系统资源,只含有程序计数器、寄存器和栈等一些运行时必不可少的基本资源。同属一个进程的线程共享进程中的全部资源。

进程是系统资源分配时的一个基本单位,拥有一个完整的虚拟空间地址。

系统在运行的时候会为每个进程分配不同的内存区域。

线程组只能共享资源,即除了CPU外,计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值