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

android activity知识总结

2016-06-10 21:28 309 查看
活到老学到老!!

activity作为android四大组件之一,全面的了解其基础知识势在必行,看了任玉刚的开发艺术,做个简单的总结。

1、activity的生命周期。

2、activity的启动模式。

3、activity的匹配规则。

生命周期:

分典型模式和异常模式,典型模式不多说,异常模式为在用户参与的过程中使activity的生命周期发生的变化,

典型模式:

onCreate:创建activity,我们可以在这里做一些初始化任务,例如view data listener等。

onRestart: 重新启动,从不可见到可见,

onStart:正在被启动,已经显示出来了,但是还不可见,

onResume:actviity已经到前台了,可以交互。

onPause: 正在停止,可以做一些动画停止,数据存储的操作,但是不可以耗时。因为会影响新的activity的显示,onPause 必须先执行完毕新的activity的Resume才会执行。

onStop:即将停止,可以做一些重量级人物。

onDestroy:即将被销毁,可以做一些回收工作和资源释放。

异常模式: 当然可以设置阻止activity被重新创建。

两种情况:

1、资源相关的系统配置发生改变导致activity被杀死并重新创建。

引起系统配置发生改变的有:
sim卡、系统语言、键盘、字体、屏幕旋转、导航等,这里只是罗列常见的一些。


2、内存不足导致的低优先级的activity被杀死。

异常模式会有两个方法被调用:

onSaveInstanceState: 存储数据

onRestoreInstanceState:恢复数据

启动模式

四种启动模式:

standard:每次启动都会创建一个实例,不管是否已经存在。

singleTop:栈顶复用模式,如果要启动的activity位于栈顶,不会创建新的实例,同时调用他的onNewIntent方法。我们可以从这个方法中获得当前请求信息。

singleTask:栈内复用模式,只要activity在一个栈中存在,每次启动就不会创建实例。类似单例模式,注意该模式具有clearTop效果,如果该activity已经存在但是不是在栈顶,就会让该activity到栈顶并且调用其哦你NewIntent方法,同是该activity上面的activity全部出栈。

singleInstance:是一个加强的singleTask模式,区别在于该activity只能单独位于一个任务栈中。

Activity的Flags

FLAG_ACTIVITY_NEW_TASK:指定activity为“singleTask”模式。

FLAG_ACTIVITY_SINGLE_TOP:指定为singleTop模式,

FLAG_ACTIVITY_CLEAR_TOP:当启动activity的时候,同一个任务栈中所有位于他上面的activity都会出栈,一般需要和FLAG_ACTIVITY_NEW_TASK配合使用,

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:不会出现在历史Activity中,也就是长按home键不会调出该activity。

IntentFilter匹配规则

intentFilter中过滤的信息有:action category data.

action:匹配的是字符串,系统预定义了一些action,同时我们也可以在代码中自己定义action,匹配规则:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android