关于Activity生命周期
来源:互联网 发布:mac qq五笔拼音输入法 编辑:程序博客网 时间:2024/06/05 03:27
关于Activity
做Android接触到最多的就是Activity,理解其生命周期对于编码的帮助很大:
帮助简化逻辑
数据传递过程清晰
处理特殊需求
一个Activity表示一个可视化的用户界面,可以称之为“活动”,使用setContentView(int layoutId)(一般执行在onCreate方法里)将需要显示的UI界面加载到这个Activity里面,实现Activity与用户的交互。
1、生命过程
onCreate(Bundle savedInstanceState) Activity创建,Bundle对象为当前Activity对象所保存的状态,此方法在Activity生命周期内只执行一次,可理解为Activity对象的创建过程。
onRestart 重启Activity,恢复显示,
Activity从后台隐藏状态转换到前台可见状态会被执行。
onStart Activity已经创建完毕,即将显示,用户看不到的。
onResume Activity已将可以显示了,并且用户可以与当前活动开始交互。
onPause Activity准备进入后台,一般用来处理离开当前活动时候的事情。
onStop Activity进入后台。
onDestroy Activity被销毁,当前活动停止,此方法只会执行一次。
2、区别特点
- onCreate一般完成正常静态设置,如创建视图、初始化控件、初始化数据、创建线程等操作。
- onStart是在活动变为可是状态之前调用,如果是前台接下来调用onResume,否则调用onStop。
- onResume活动与用户可交互前会调用到,其实是将一个Activity移动到栈顶。
- onPause和onStop与onStart和onResume是相互对应的关系。
- onDestroy与onCreate相对应,于Activity销毁时候调用到。
3、使用技巧
- activity的销毁原因会有多种,如自然销毁,系统回收等等,但是onPause方法却是唯一一个必定会在进程被杀死前被调用到的方法,所以相关的保存工作在这里完成比较好。
- onStart和onResume方法在活动每次进入前台时候都会调用到,所以不需要在里面完成视图和数据的初始化,但是可以进行视图或数据的更新操作,比如数据会在下一个Activity里面改变,再回到此活动时候更新。
另外需要注意的是只需要执行一次的操作(如启动一个线程),尽量不要放在这两个方法里面完成,尤其如果线程操作关系到c++之类的其他语言,因为c崩溃后JVM并不会检测到,只会再启动一遍,造成错误的结果。 - onPause 最重要的是用户所做的改变应该在这里提交,需要注意的是对于下一个启动的Activity来说,当前Activity必须执行完onPause方法才会执行onResume方法,也就是说当前的Activity准备隐藏工作完成之后下一个Activity才会准备显示,所以在这个方法里面不能执行过多的操作,尤其是耗时操作需尽量避免。
4、备注示例
0 0
- 关于Activity的生命周期
- 关于Activity生命周期执行:
- 关于Android activity生命周期
- 关于Activity的生命周期
- 关于Activity生命周期
- 关于Activity的生命周期
- 关于 Activity的生命周期
- 关于Activity的生命周期
- 关于activity的生命周期
- 关于Activity生命周期的管理
- 关于Activity生命周期的分析
- 关于activity的生命周期一
- 关于Activity生命周期的理解
- 关于Activity生命周期的详解
- 关于Activity的生命周期理解
- 关于Activity及Activity的生命周期
- Android中关于Activity的生命周期
- 关于Activity的生命周期及其作用
- Bootstrap多级导航栏(级联导航)的实现代码
- 消除“Permission is only granted to system apps”错误
- HDU5605——数学题(三角函数的应用)
- iOS学习----------图片的简单处理(2)
- socket访问百度
- 关于Activity生命周期
- 华为笔试1 去除重复字符并排序的字符串 c++ string 实现
- 六种常用的设计模式java实现(三)责任链模式
- 1084. Broken Keyboard (20)
- 【数据结构与算法】数据结构+算法=程序
- 安卓开发:将数据返回给上一个活动
- hdu 1535 Invitation Cards(邻接表spfa)
- Linux 文件系统:procfs, sysfs, debugfs 用法简介
- HTML中结构化标签的使用