Android的Activity有其独特的生命周期(Activity LifeCycle),如下7个生命周期函数
OnCreate()【在activity第一次被创建的时候调用,写的代码比如指定布局文件、绑定监听器等静态设置操作】
OnStart()【当activity被显示出来能被用户看到的时候调用】
OnResume()【当activity能够获得用户焦点的时候调用】
OnPause()【当应用程序调用新的activity时调用】
OnStop()【当activity对于用户而言处于不可见时调用】
在启动一个新的Activity阶段:会依次执行3个生命周期OnCreate(),OnStart()和OnResume()
在Activity失去焦点阶段:如果新的Activity完全遮挡住了原有的Activity,会调用OnPause()和OnStop();如果新的Activity只是部分遮挡,如对话框形式的Activity,只会调用OnPause()
在Activity重新获得焦点阶段:如果原Activity是被完全遮挡住的,将会调用OnRestart()、OnStart和OnResume().如果原Activity不是被完全遮挡住的,系统将只调用OnResume().
在关闭Activity阶段:会依次执行Onpause()、OnStop()、OnDestroy()
Task运行机制
Task是一个存放很多activity的栈,所有的activity对象在Task栈中被组织成同一个单元。
(1)当应用程序启动后,将默认的第一个activity对象压入task栈中.
(2)当点击按钮后启动第二个activity,该Activity对象被压入栈中;手机显示Task栈中顶部的元素,之前的Activity对象还存放在Task栈中,没有被销毁。
(3)当按下back按钮后,处于Task栈顶部的Activity对象被弹出。
但如果在通过StartActivity(intent)启动新的activity后,再调用finish(),之前的Activity对象就会在Task栈中被销毁。
(*)Task栈中不允许重新排序。
对话框式的Activity,在布局文件AndroidMainfest.xml中对应的加上
本帖转自:Android学习笔记之Activity的生命周期
如有侵权,请联系我,我会尽快处理,谢谢。