1.活动是通过活动栈进行管理的,当一个新的活动开始时,它被放在栈的最顶端,在栈中它的前一个活动会放在当前新活动的下面。
2.一个活动有最重要的四种状态:
(1)当它在屏幕的最前端的时候(在栈的顶端),此时它是处于运行状态。
(2)当一个活动依旧是可见的 ,但是并不在屏幕的最前端(不在栈顶),此时它是处在暂停状态,暂停状态的活动仍旧是存活的,但是当内存极低的极端情况下,是可以被回收的。
(3)当一个活动被另一个活动完全隐藏的时候,它就处于停止状态,此时对用户它是不可见的,在需要内存的时候,这种活动经常会被回收。
(4)当一个活动被暂停或停止,系统可是通过主动结束活动或者杀死它的进程来在释放活动的内存
3.活动的三种循环的生存期:
entire lifetime (完整的生存期):从onCreate()到onDestroy()方法之间,活动会在onCreate()完成初始化操作,在onDestroy()中释放占用的资源。例如,如果一个活动有一个线程完成从网上下载数据,它应该在onCreate()中创建线程,在onDestroy()终止此线程。
visible lifetime(可见的生存期):从onStart()到onStop()方法之间。在这段时间,活动对于用户是可见的,但是并非是在最前端可以与用户进行交互的。在这两个方法中管理在活动中显示的资源。当活动对用户可见和隐藏时,这两个方法会被多次调用。foreground lifetime(前端的生存期):从 onResume()到onPause方法之间,在这个期间,此活动在所有活动之前并与用户进行交互。
Q`U8(T9C7V6G()BH)5KR378.png
活动的生存期:
onCreate():活动第一次创建时调用此方法,在这个活动中完成初始化操作例如:加载布局,对lists绑定数据。onRestart():再活动被停止之后可被调用,在活动重新启动之前。
onStart():当活动对用户从不可见变为可见的时候调用。
onResume():当活动准备与用户进行交互时调用,此时活动位于栈顶。
onPause():这个方法在系统准备去启动或者恢复另一个活动时调用。通常在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键的数据,但是此方法的执行速度要快,在这个方法结束前,下一个活动无法走上最前端。
onStop()::当活动对用户不可见的时候调用,因为此时其他的活动已经在前端且覆盖在此活动之上。与onPause的主要区别在于,当启动的新活动是对话框的形式时,onPause执行而onStop不执行。
onDestroy():这个方法在活动销毁之前调用,这个在活动结束(调用finish()方法)或者系统暂时结束活动实例以节省内存。
{}QE7NEM_(CC)ATF}SU7TS0.png