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

Android SDK 开发之应用程序基础

 2010-03-23 04:53:00 来源:WEB开发网   
核心提示:object设置好并传递给startActivity()就可以了,地图浏览器会显示地图,Android SDK 开发之应用程序基础(6),当用户按下BACK键,你的activity又会重新显示,以上是activity和task的默认行为,但是也有其他的方法来改变这种行为,对于用户来说,地图浏览器就好像是你的应用程序中的
object设置好并传递给startActivity()就可以了。地图浏览器会显示地图。当用户按下BACK键,你的activity又会重新显示。

对于用户来说,地图浏览器就好像是你的应用程序中的一部分,即使它是在另一个应用程序中定义并运行的。android将这两个activity放在同一个task中来让用户感觉它们是同一个程序。简单的说,一个task就是用户感觉上的一个application。它是一组相关的activity,组织在一个stack中。我们称开始任务的activity为根activity。一般来说,根activity是用户在程序启动器中启动的。在stack顶端的activity是当前正在运行的activity。当一个 activity启动另一个时,新的activity被推入stack并成为运行的activity。前一个activity仍然保存在stack中。当用户按下BACK键时,当前的activity被拖出,前一个activity成为运行activity。

stack储存的是对象,因此如果一个stack包含了同一个Activity类的不同实例,它们会放在不同的地方。stack中的activity只能推入和拖出,而不能进行其它的顺序变化。

A task is a stack of activities, not a class or an element in the manifest file. So there's no way to set values for a task independently of its activities. Values for the task as a whole are set in the root activity. For example, the next section will talk about the "affinity of a task"; that value is read from the affinity set for the task's root activity.

一个task是多个activity构成的stack,而不是在manifest文件中的一个类或者一个元素。因此没有办法来设定一个task的属性而不管它的activity。一个task的所有属性值是在根activity中设定的。例如 task的affinity。它是从根activity中读取的。

一个task中所有的activity作一个整体来运动。整个 task可以被提到前台或者放到后台。例如,当前的task有4个activity。用户按下HOME键,进入程序启动器,然后选择一个新的应用程序(事实上就是一个新的task).当前的task进入后台,新task的根activity被显示。然后用户又进入主界面启动前一个应用程序,则那个有4个 activity的task进入前台。当用户按下BACK键时,不会显示刚才那个task的root activity,而是将当前task的stack顶部activity移除并显示前一个activity。

以上是activity和task的默认行为。但是也有其他的方法来改变这种行为。activity和task之间的联系和行为是由启动activity的intent对象中的标签以及manifest文件中元素的属性值共同影响的。

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

Tags:Android SDK 开发

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接