生命周期图: Activity 从创建到进入运行态所触发的事件 onCreate()-->onStart-->onResume() 从运行态到停止态所触发的事件 onPause()--->onStop() 从停止态到运行态所触发事件 onRestart()-->onStart()--->onResume() 从运行态到暂停态所触发事件 onPause() 从暂停态到运行态所触发事件 onResume() 根据例子来详细的介绍一下它的生命周期的过程(它所调用的方法): 首先先看一下例子: Java文件有:ActivityLifeCyde.java 、 SecondLifeCyle.java、ThridLifeCyle.java Xml布局文件有:main.xml、second.xml、thirid.xml 首先是ActivityLifeCyde.java文件 SecondLifeCyle.java文件中 ThridLifeCyle.java 文件中 Main.xml文件中 Second.xml Thirid.xml文件中 要在AndroidManifest.xml文件中添加两句话 效果显示: 当点击button按钮时 点击button按钮时返回上个界面 点击对话框按钮时出现 当点击退出按钮时 点击取消则返回当前页面,点击确定则退出当前Activity 下面则根据这个例子来解释一下生命周期的调用过程 1、刚把程序运行起来的时候 onCreate() -- onStart() -- onResume() 2、当点击Button按钮的时候 onPause() -- onStop() 也就是说 进入另外一个Activity的时候会暂停当前的Activity 并且停止 进入到另外一个Activity的时候也会执行 1 中的过程 ,当再返回第一个Activity的时候也会执行 2 中一样的过程 3、点击对话框按钮的时候 onPause() 这个时候只会把这个Activity 暂停 ,因为出现的对话框同样也在这个Activity中,也就是说这个Activity并没有停止,所以他不会调用onStop()这个方法,更不会调用onDestory() 消灭这个Activity ,也可以理解为 当前Activity失去了焦点, 就好比 一个页面中有两个文本框:文本1和文本2 , 光标由文本1 转到文本2中 实际上就是这个过程 4、点击对话框按钮,然后再点击返回键的时候 onPause() -- onResume() 当前暂停的Activity在暂停后再次使用的时候会调用onResume()这个方法 重新开始这个Activity 5、点击退出按钮,如果点击取消的时候 在这个过程中当前程序的生命周期是没有任何变化的 6、点击退出按钮,如果点击退出按钮的时候 onPause() -- onStop() --- onDestroy() 退出的话就会把当前的activity结束并销毁掉 7、运行程序,再返回 onCreate() -- onStart() -- onResume() -- onPause() -- onStop() --- onDestroy() 整个生命周期的调用 8、运行程序 ,再点击手机键盘中的 小房子 的那个按钮 onCreate() -- onStart() -- onResume() -- onPause() -- onStop() 这个时候Activity 是没有被消灭的,只是把它暂停了,主页把这个activity覆盖了,相当于进站 9、在8的基础上再点击进入程序 onRestart() --- onStart() --- onResume() 把这个activity从暂停的状态重新开始,调用onRestart()这个方法 ,然后再开始运行 10、长时间点击 小房子 那个按钮 这个动作是没有执行任何方法,只是回到了主页面 11、在 执行了 10 的基础上,再长时间点击 小房子 那个按钮 回到activity onRestart() --- onStart() --- onResume() 然后在ActivityLifeCyde.java 文件中添加这两个方法 12、如果在这个时候再点击 小房子 的那个键 或 按下电源按键(关闭屏幕显示)时 或 长按HOME键,选择运行其他的程序时 onSaveInstanceState() --- onPause() -- onStop() 其实点击这个键 可以理解为强制性的离开当前的activity 并没有得到我的同意 ,在这个时候会执行 onSaveInstanceState () 这个方法 保存当前activity的进度 ,就好比你在手机上看小说,突然来了一个电话,手机会保存小说的进度,当你接完电话的时候小说会读取你接电话之前的进度 13、在执行了 12 的基础上 再进入这个程序中 onRestart() --- onStart() --- onResume() 复苏,重新开始 onSaveInstanceState方法和onRestoreInstanceState方法不一定是成对的被调用的,onRestoreInstanceState被调用的前提是,activity 确实被系统销毁了