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 <application 12 android:allowBackup="true" 13 android:icon="@drawable/ic_launcher" 14 android:label="@string/app_name" 15 android:theme="@style/AppTheme" > 16 <activity 17 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 <activity 26 android:name="com.example.activity04.SecondActivity" 27 android:label="@string/title_activity_second" 28 android:theme="@android:style/Theme.Dialog" 29 > 30 </activity> 31 <activity 32 android:name="com.example.activity04.ThridActivity" 33 android:label="@string/title_activity_Thrid" 34 > 35 </activity> 36 </application> 37 38 </manifest>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>