要解释什么是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里没有什么区别。