android 知识整理生命周期《一》

时间:2022-01-02 14:44:59

一.Activity的生命周期

android 知识整理生命周期《一》














Activity三个稳定状态:

Resumed:这个状态在onResumed()方法执行完毕,也就是Activity的running状态,用户可以与Activity进行交互

Paused:在这个状态,Activiy处于半透明的,其他的activity来到栈顶,如果其他Activity是透明的,或者不完全遮挡,这时就会只执行onPause()方法,进入该状态。Activity在该状态,用户不能与之交互。

Stopped:当Activiy被其他Acitivy完全遮挡,处于后台时,会进入该状态,在进入这个状态前,需要保存Activity的数据(避免因停留过久, 或内存不足,而被系统杀死导致丢失数据)。在该状态,acitivy不能执行任何代码。

onCreate()方法:Activity生命周期的第一个方法,用来建立一个Activiy所需要的基础操作,比如加载界面布局,声明UI元素,定制UI元素,配置UI数据。

onStart()方法:表示Activity正在被启动,这时Acitivy已经可见了,但还没处在前台,用来初始化Activity的数据。

onResume()方法:此时Activity已经可见,并且出现在前台并开始活动。主要用来做准备Activity资源的操作。

onPause()方法:表示Activity正在暂停,正常情况下,接下来onStop()要被调用。特殊情况,如果新的Activity是透明的,没有完全遮挡住旧Activity,则旧Activity只会执行onPause()方法,在该方法中,保存数据,停止动画,释放系统资源,做一些轻量级的工作。

onStop()方法:在新的的Activity启动之后,旧的Activity会停止再执行onStop()方法,用来保存耗时的数据操作(写数据到DB等),释放资源。

onDestroy()方法:表示Activity即将被销毁,Activity生命周期最后一个回调方法,用来做一些回收工作,防止内存溢出。当Activity在后台内存不够被系统杀死时,该方法不会回调。

二.对生命方法的理解:

Activity的生命周期中方法,创建成功,到销毁,方法成对出现的,也要成对使用。

onCreate()对应onDestroy()

onStrart()对应onStop()

onResume()对应onPause()

成对出现:

onCreate()和onDestroy()方法期间Activity的状态是一致的,是看不见界面的,处于黑屏状态,因此不能执行太过耗时的操作。

onStart()和onStop()方法期间Activity的状态是一致的,界面处于半透明的状态。

onResume()和onPause()方法期间Activity的状态一致,界面是可见的。

成对使用:

1.onPause()和onResume()

onPause()方法:

①停止会导致CPU的浪费。停止动画等。

②提交没有保存的改变,一般用来保存临时的或者不太耗时的操作。

③释放系统资源,如广播、sensors、或者是其他耗电的资源。

onResume()方法:

①初始化资源(开启动画等)

②注册广播、sensors等系统资源

2.onStart()和onStop()

onStop()方法:

①在onStop()方法中释放资源,从而避免内存泄露。清除所有Activity资源的操作。

②执行稍微耗时的保存数据的操作,如保存数据到数据库。

onStart()方法:

创建在onStop()方法中释放的资源。

三.方法的区别