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被杀死并重新创建。
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,匹配规则:
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,匹配规则:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories