Activity是安卓提供给用户与手机之间可交互的界面组件,也是四大组件中比较重要的组件。他是通过一个窗口来描述界面视图的工具
Activity从创建到生命结束,都有其独特的回调方法
Activity的生命周期:
onCreate、onStar、onResume、onRestart、onPause、onStop、onDestroy
Activity正常的生命周期一般情况下分为7种 :onCreate onStar onResume onRestart onPause onStop onDestroy
在安卓官方的API上面详细介绍了各个回调的方法的回调时机
下面就简单概述下生命周期的回调方法
onCreate方法在调用构造方法之后 系统会自动调用这个方法,一般在此方法中初始化控件设置全局资源 设置全局控件
在整个Avtivity的生命周期中,这个方法只会调用一次
在Activity的创建过程中除了调用onCreate 还会调用onStar onResume 当这两个个方法调用完成之后,界面才会变成可交互的 Activity处于运行状态
onStar在Activity可见事就会调用这个方法 但是此时界面还不能交互
onResume 界面已经可见 而且可以和用户交互了 这时会调用这个方法
onResart在Activity从不可见状态到可见状态会调用这个方法 注意:在在Activity第一次创建的时候并不会走这个方法 只有在Activity从onStop状态下唤醒时才会调用这个方法
onPause 在界面即将不可见的时候会调用这个方法 Activity处于暂停状态 是界面即将不可将的时候调用 而onstar 是在界面即将可见的时候调用
这个方法通常用来数据的持久化 和动画的终止 。
例:当Activity A 调用Activity B时 A的onPause方法就会被调用 之后B调用 onCreate onStar onRsume ,当A完全不可见识就是调用A的onStop方法
请不要在A中的onPause方法中做耗时的操作
而且当系统的内存资源严重不足的时候,系统就会自动销毁处在onPause状态下的Activity以用来回收内存,所以onpause还是可以保证在Activity销毁之前一定会调用的声明方法
onStop 两种情况下会被调用
1.当前的Activity被销毁时
2.有一个Activity完全挡住了当前的这个Activity
这个方法可以用来停止刷新界面的操作
当Activity处于onStop状态下 有可能会因为系统资源不足,而导致Activity被销毁
但是有可能Activity声明处于onpause状态下,就被系统销毁,所以这个方法不一定能保证调用
onDestroy
在Activity销毁之前会调用这个方法
一般会用来释放资源
注意:在系统资源不足的情况下,会将已经调用的onpause·或onStop方法回收,所以这个方法也不能保证一定会被调用
onResart
当Activity从onStop状态从新回到运行状态时 ,会走这个方法
当然上述情况是在Activity正常情况下的声明周期,有正常情况肯定还会有异常的情况
异常情况下Activity的声明周期:
实际的开发中异常情况大致分为两种:
1.资源的相关配置,导致Activity被销毁后重建
2.系统内存不足,导致优先级低的Activity被销毁