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

新手粗谈android四大组件之Activity

2016-01-25 23:07 721 查看
android四大核心组件 是我们实现业务的保障与基石 将自己一点浅薄的总结放在这里希望 有更多的初学者能够尽快入门

一, Activity

作为android唯一的交互层,这一组件是andorid软件开发中的重中之重 业务逻辑与UI界面的最终交汇层

activity的生命周期

1)创建 onCreate

2)启动 onStart

3)运行 onresume

4)暂停 onpause

5)停止 onStop

6)销毁 onDestory

二 Activity的状态保存

Activity很多时候需要进行后台运行,这个时候我们当前页面的数据或者说记录怎么办? 这里就用到了状态保存。 众所周知, 当页面销毁或者进入后台运行时

就需要重写我们的onsaveInstanceState方法用于保存数据,至于保存到什么位置就取决与你的业务了 。他是执行在onstop和onDestory之前的。

保存好数据,当我们下次启动时Actvity加载会按照onCreate》onStart》onRestoreInstance的加载顺序 我们重写onRestoreInstance这个方法的时候就能取出上次

关闭前的数据

三 Activity的任务栈

一个应用可以有多个任务栈,任务栈的创建会与Activity的启动模式与亲族设置有关系

Activity的四大启动模式

1)标准模式,(standdard)每次都会重新创建一个activity

2)栈顶模式,(singleTop)每个activity在栈顶的时候不会创建新的activity其余的时候回创建activity并置顶

3)单任务模式,(singleTask)这个模式下每一个任务栈中次Activity的实例只有一份,并置于栈顶 将会把它上面的所有activity全部移除

4)单实例模式,(singleInstance)此实例回独享一个任务栈

这些属性都在清单配置文件中的activity元素进行设置

Activity亲族设置

Activity的启动模式与亲族设置共同决定了activity的存储位置

比较常用的两大组合

a)SingleTask&taskAffinity

启动一个singleTask模式的activitys时

如果两者的亲族值不同 singleTask模式的activity会被存储在一个新的任务栈之中并且通过singleTask模式的activity

启动其他的activity时,都会存储在singletask模式所在的任务栈中

b)singleInstance与taskAFFinity

由singleInstance模式的activity启动其他的activity时,其他的activity存储在哪一个栈由他的亲族值来决定 如果说有存在相同的亲族设置,就

存在该栈之中,如果没有相同的亲族设置 创建新的任务栈并进行存储。

纯小白 如果说的有什么不对的地方希望大神多多指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: