Activity生命周期与启动模式基础知识备忘录
来源:互联网 发布:java 线程休眠 编辑:程序博客网 时间:2024/06/07 05:12
Activity生命周期:
onCreate:创建Activity,通常需要调用setContentView加载界面布局资源;
onRestart:重新启动,Activity从不可见到可见,onPause和onStop被执行了,又回到这个Activity;
onStart:正在被启动,已经可见,但没有出现在前台;
onResume:已经可见,出现在前台可与用户交互;
onPause:正在停止,通常onStop紧接着会被调用,但此时若快速返回当前Activity(用户操作难实现),那随后onResume被调用。可以存储数据、停止动画;
onStop:即将停止,可以做回收工作;
onDestroy:即将销毁,可以做回收和资源释放工作。
生命周期备注:
1、打开新Activity时,当前Activity回调步骤:onPause-》onStop,但当新Activity为透明主题,或者非全屏时(即当前Activity仍可见),则onStop不被调用;
2、当用户再次回到原Activity时,回调步骤:onRestart-》onStart-》onResume;
3、当用户按下back键时,回调步骤:onPause-》onStop-》onDestroy;
4、onCreate和onDestroy配对=》是否分配内存创建对象;onStart和onStop配对=》是否可见;onResume和onPause配对=》是否前台运行可交互;
5、打开新Activity时,原Activity的onPause先调用,才会调用新Activity的声明周期回调;
6、Activity异常结束会回调onSaveInstanceState,之后再次创建会调用onRestoreInstanceState,异常结束原因包括资源相关的系统配置发生改变(Activity的configChange属性可以防止此类重建,设置orientation、mcc、mnc、locale等等,配置变化时onConfigurationChanged方法会被调用,而非重建),或者内存资源不足;
7、从内存不足时Activity被系统杀死的话题,延伸出为什么使用Service的原因——如果一个进程中没有四大组件在执行,那么这个进程将很快被系统杀死,后台工作放入Service可以保证进程有一定的优先级,不容易轻易地被系统杀死;
Activity启动模式:
1、standard:每次启动都会创建Activity的新对象;
2、singleTop:栈顶的Activity被启动,不重复创建,只调用其onNewIntent函数;
3、singleTask:Task中的Activity实例具有唯一性,如果已经存在,只调用其onNewIntent函数,并将其置于栈顶(可能弹出其上的Activity实例);
4、singleInstance:Task中只存在一个唯一的Activity实例;
Intent的标记:
1、FLAG_ACTIVITY_NEW_TASK:将目标Activity实例放入一个新的Task中;
2、FLAG_ACTIVITY_CLEAR_TASK:先把和目标Activity有关联的Task销毁,然后启动一个新的Task,注意必须和1同时使用;
3、FLAG_ACTIVITY_CLEAR_TOP:使得同一个任务栈中其上方的实例弹出栈,singleTask默认有此效果;
- Activity生命周期与启动模式基础知识备忘录
- Activity生命周期与启动模式
- Activity 生命周期与启动模式
- Activity生命周期与启动模式
- 1.Activity的生命周期与启动模式
- Android Activity生命周期与启动模式
- Activity 生命周期与启动模式 详解
- Android Activity生命周期与启动模式
- Activity的生命周期与启动模式
- Activity的生命周期与启动模式
- 关于Activity的生命周期与启动模式
- Android-Activity的生命周期与启动模式
- Activity的生命周期与启动模式
- Activity生命周期与启动模式笔记
- 回顾基础知识--第一章:Activity的生命周期和启动模式
- 基础知识记录:Activity生命周期与Fragment生命周期
- interView - Activity生命周期,启动模式
- Activity 生命周期及启动模式
- 排序算法之冒泡排序
- Extjs4的Grid中rownumberer倒序排序
- bfs 穿越雷区 杭电题目
- hadoop 分布式环境搭建
- 多线程 通过GCD实现网络并行
- Activity生命周期与启动模式基础知识备忘录
- Opentext BPS 平台开发入门实战演练——基于XForm界面开发
- Spring定时任务(Quartz第二种)用法
- 苹果发布用户来源功能,从渠道到数据监控或将全面洗牌!
- ASP.NET MVC5路由系统机制详细讲解
- mysql show 语句
- Access学习要点2----Access2010中如何运行SQL执行SQL语句
- 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
- android 多选项实现