对于android新手来说,大都对activity的生命周期不是太了解,有关activity的生命周期方法执行顺序,我这里看到一篇文章http://www.2cto.com/kf/201409/334386.html

如下是一段典型的从AActivity切换到BActivity的日志,:

10-17 20:54:46.997: I/com.example.servicetest.AActivity(5817): onPause() 1166919192 taskID=66
10-17 20:54:47.021: I/com.example.servicetest.BActivity(5817): onCreate() 1166971824 taskID=66
10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onStart() 1166971824 taskID=66
10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onResume() 1166971824 taskID=66
10-17 20:54:47.099: I/com.example.servicetest.AActivity(5817): onStop() 1166919192 taskID=66

先AActivity的onPause()被调用,然后是BActivity的初始化流程(onCreate() --> onStart() --> onResume()),再然后是AActivity的onStop()被调用。

了解了activity生命周期方法的执行顺序之后,我们就可以解决文章标题中提到的问题。

新手们大多都喜欢把所有的初始化都写在onCreate()方法里面

如果所有的初始化都在onCreate()中实现,会有什么问题?

出自http://www.2cto.com/kf/201409/334386.html

首先,Activity的onCreate()被调用时,Activity还不可见,如果要做一些动画,既然视图还不存在,在onCreate中来启动动画,明显有问题;

其次,AActivity 切换到 BActivity,再切换到 AActivity(我们假定是AActivity的同一个实例),由于实例已经存在,所以onCreate不会再被调

用,那AActivity从后台切换至前台时,有可能需要一些初始化,那就没法再被调用到了,也有问题;


所以Activity从后台切换至前台时,如果需要一些初始化,就必须将初始化写在onResume ()方法里面


更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android上一些方法的区别和用法的注意事项
  5. android实现字体闪烁动画的方法
  6. Android(安卓)Wifi模块分析(三)
  7. Android中dispatchDraw分析
  8. Android四大基本组件介绍与生命周期
  9. Android(安卓)MediaPlayer 常用方法介绍

随机推荐

  1. android创建数据库(SQLite)保存图片示例
  2. android练习一之拨号实现
  3. 【Android】Activity 的 Title 中加入进
  4. android sdk 自带的非空非空串判断方法
  5. 【android开发】android操作文件
  6. android一键清除最近应用按钮
  7. Android(安卓)APP 设置启动的第一张图片
  8. android 选择图片(从手机照相机或手机图
  9. Android(安卓)studio引入百度地图时的bug
  10. android java.lang.IllegalStateExceptio