WEB开发网
开发学院手机开发Android 开发 Android SDK 开发之应用程序基础 阅读

Android SDK 开发之应用程序基础

 2010-03-23 04:53:00 来源:WEB开发网   
核心提示:主要的Intent标签值有以下几种:FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_RESET_TASK_IF_NEEDEDFLAG_ACTIVITY_SINGLE_TOP主要的属性有:taskAffinitylaunchModeallowTaskR

主要的Intent标签值有以下几种:

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_CLEAR_TOP

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

FLAG_ACTIVITY_SINGLE_TOP

主要的属性有:

taskAffinity

launchMode

allowTaskReparenting

clearTaskOnLaunch

alwaysRetainTaskState

finishOnTaskLaunch

下面我们来看看它们的作用。

Affinities and new tasks

默认情况下一个应用程序中所有的activity相互之间都有一个affinity. 对于一个activity也可以设置一个单独的affinity. 当启动activity的Intent对象包含FLAG_ACTIVITY_NEW_TASK标志,并且

activity的allowTaskReparenting属性为"true".

FLAG_ACTIVITY_NEW_TASK 标志

一个新的activity在默认情况下在调用startActivity()的activity所属的task中启动,被推入和启动它的activity相同的activity栈中。但是,如果传给startActivity()的Intent对象包含

FLAG_ACTIVITY_NEW_TASK标志,则系统寻找一个不同的task来管理改这个新的activity。一般来说是一个新的task,不过也不一定是。如果已经存在一个和新activity有相同affinity的

task,则该activity在这个task中启动。否则启动一个新的task。

allowTaskReparenting属性

如果一个activity的allowTaskReparenting属性为"true",它可以从它启动时所在的task移动到另一个它具有affinity的task中。例如,假设一个旅游助理软件中有一个activity是用来报告天气的。它和

这个应用程序中的其它activity有相同的affinity(默认affinity)并且允许reparenting。某个activity启动天气预报器,因此它和这个activity属于同一个task。然而,当旅游应用程序进入前台时,天气

报告器会被重新分配到旅游应用程序的task中去。

如果对于一个用户来说,一个apk文件包含了多于一个的应用程序,很可能你需要为不同的activity赋予不同的affinity。

Launch modes

元素的launchMode属性可以有4种值:

"standard" (the default mode)

"singleTop"

"singleTask"

"singleInstance"

上一页  2 3 4 5 6 7 8 9 10 11 12  下一页

Tags:Android SDK 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接