Android的Task是一个Activity栈,用来完成用户的某一个目的,而不管这个Acitivity是属于哪个AP的。Task中的Activity可以分属于不同的AP。

在Task中,有一个Acitivity叫root activity,它是用来启动一个Task。

Tasks在系统中做交互的时候,这个Task所包含的所有Activities会被作为一个整体移动。比方说:Task A被设置成foreground/background task的时候, 整个task(activity stack)都会随之移动。

(再补充一点就是说:一个Activity栈也可能是由一个或多个Task组成。)

Task中还有一个重要的属性就是用户可以中断目前正在做的事情,而去跑另外一个Task。基于这样一个特性,用户就可以同时跑不同的task,而且可以在它们之间切换。
有三个方法中断Task:1.Notification;2.用户操作,比如按Home或者开启另外一个程序;3.Activity中自己定义的New Task,比如说Map或者Browser,在Email中选择address会Launch Google Map,选择Link会Launch Browser,等等。

Applications:

一个Android Application由一个或者多个Acitivity组成,这其中或许还包括一个或多个Service,它会被打包成.apk文件。

补充:Launch Activity的四种模式:standard(default),singleTop,singleTask,singleInstance
standard或者singleTop activity可以被实例化多个,而singleTask或singleInstance只可以有一个实例。
Activity B Activity B
Activity D Activity B
Activity C Activity D singleTop = single + top
Activity B Activity C
Activity A Activity A
B是singleTop B不是singleTop

多个Activity组成了一个Task集合单元

本人画了一图给大家参详细一下,也许思路会更明确:

还给大家引入一概念: 显示对话框的Activity

运行效果:

只需要改AndroidManifest.xml中 android:theme="@android:style/Theme.Dialog"
>就OK了

源代码和上次Activity生命周期一样.大家可以去下载多加一个Activity

本人把AndroidManifest.xml代码发出来共享一下:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3     package="com.example.activity04" 4     android:versionCode="1" 5     android:versionName="1.0" > 6  7     <uses-sdk 8         android:minSdkVersion="8" 9         android:targetSdkVersion="16" />10 11     <application12         android:allowBackup="true"13         android:icon="@drawable/ic_launcher"14         android:label="@string/app_name"15         android:theme="@style/AppTheme" >16         <activity17             android:name="com.example.activity04.MainActivity"18             android:label="@string/app_name" >19             <intent-filter>20                 <action android:name="android.intent.action.MAIN" />21 22                 <category android:name="android.intent.category.LAUNCHER" />23             </intent-filter>24         </activity>25         <activity26             android:name="com.example.activity04.SecondActivity"27             android:label="@string/title_activity_second"28               android:theme="@android:style/Theme.Dialog"29             >30         </activity>31         <activity32             android:name="com.example.activity04.ThridActivity"33             android:label="@string/title_activity_Thrid"34            >35         </activity>36     </application>37 38 </manifest>

更多相关文章

  1. 【Android(安卓)Developers Training】 16. 暂停和恢复一个Activ
  2. android notification的用法
  3. Android(安卓)MVP+Retrofit(封装)+RxJava实例
  4. Android用户界面 UI组件--TextView及其子类(五) DigitalClock,An
  5. Android(安卓)6.0 变更
  6. 【尚观】Android游戏与应用开发最佳学习之路_转载来学习Android
  7. 学习笔记:Android基本组件之Activity
  8. android 耳机插入检测
  9. Android(安卓)8.1隐藏状态栏图标的实例代码

随机推荐

  1. 回顾·对话机器人在瓜子的实践
  2. 就算有“中台”模式,企业也应该重视“大部
  3. 死磕PDF技术20年:海外赚钱国内上市,码农创
  4. 产品加密之我见
  5. 刚刚,华为鸿蒙OS 2.0 发布,18点18分开放源
  6. Druid原理及产险实践
  7. HBase实战 | Hive数据导入云HBase
  8. 回顾·五八同城智能客服系统“帮帮”技术
  9. 32 道常见的 Kafka 面试题你都会吗?附答案
  10. 回顾·知识图谱在贝壳找房的从0到1实践