您的位置:首页 > 移动开发 > Android开发

Android 活动-- Activity(待写)

2014-05-08 21:08 260 查看
Android 活动-- Activity(待写)

应用程序与进程:

应用程序是一组组件的结合

进程是运行这些组件的载体

任务栈:task stack --> 只针对 activity而言,

作用:用来维护用户的界面(activity)体验

任务栈,其实就一个后进先出的链表,记录维护了,当前开启的activity,一般情况,退出一个activity,就把这个activity从任务栈顶移除

如果任务栈空了,任务栈空了会被回收的,应用程序就算是关闭了,但是注意进程,其实还是存在的。

当打开一个应用程序的时候,首先会创建一个进程,然后再进程里面创建一个任务栈,此时候任务栈里有一个界面就是当前被打开的activity

1、Activity启动模式:

在Manifest.xml清单文件中指定launchMode属性值即启动模式

<activity
android:label="@string/app_name"
android:name=".MainActivity"
android:launchMode="standard"
android:configChanges="locale|orientation|keyboardHidden">
</activity>
<!--configChanges,运行时的改变事件通知安卓平台要不要重建Activity;以上配置改变本地和方向以及键盘隐藏时不销毁重建activity。keyboardHidden一般	情况要加上,否则还会重建-->


启动模式launchMode:

1.standard:默认的.

每次启动都会创建新的对象(new).

2.singletop:

单顶模式,如果打开的activity已经在栈顶,不会new,而是直接返回.(应用场景:避免通一个界面被重复的开启)

3.singleTask:

和(4)都具有单实例的特点,由此开启的activity是同一个任务.(任务栈)

(开启一个activity B的时候检查任务栈里面是否有activity B 的实例存在,如果存在,就会清空这个任务栈中activity B上面所有的activity,复用activity B)

4.singleInstance:

和(3)都具有单实例的特点,由此开启的activity不是一个任务.(任务栈)

(这种启动的模式的activity会开启一个新的任务栈,任务栈里面只有一个activity的实例存在,如果这个activity被开启,把这个任务栈放最在前面,如果开启了新的activity,别的activity所在的任务栈会被放在前面,退出也是按标准模式的退出)

这种启动模式比较极端:在整个手机系统的内存中,只会有一个实例存在,如应用O中的activity A是这种模式,被打开,和应用X打开应用O中的activity A是同一个实例(如来电的activity界面就是singleInstance,因为有很多来电界面)

----------------------------------

Task:任务,是activity集合.

不是组件,也不是技术.android重用粒度细.activity.

运行时概念.

同一个任务,在同一个栈中,不同任务在不同栈中

亲和力

默认情况下同一个程序下,所有的Activity首选在同一个任务当中,当然,可以修改某一个activity的亲和力度,在不同的程序当中可以定义有相同亲和力的activity

2、Activity的生命周期

asd

3、Activity的横竖屏

清单文件中配置:

<!-- screenOrientation 固定activity方向;值:landscape 水平朝向   portrait 竖直朝向
configChanges 配置当屏幕方向发生变化时	哪些变化不影响activity生命周期
值:orientation 方向编号时,keyboardHidden 软键盘 ,screenSize 4.0系统屏幕大小的自适应
-->
<activity
android:name="com.seul.towactivity.MainActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name" >
</activity>


代码中配置:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: