学习android开发这么久对于activity的生命周期尚未仔细思考过,因此,我大体的把这些东西整理一下,但愿经过这使本身理解的更透彻点吧!android
首先看一下Activity生命周期图和它的的四个阶段 app
它的的四个阶段
学习
1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。
2. Activity失去焦点:若是在Activity得到焦点的状况下进入其余的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()方法。
3. Activity从新得到焦点:若是Activity从新得到焦点,会依次执行 3个生命周期方法:onRestart()、onStart()和onResume()。
4. 关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法:onPause()、onStop()和onDestroy()。
动画
如今经过一个例子来了解它的生命周方法在四个阶段的用法:spa
七个生命周期方法以下,它们的做用见下面示例方法注释中code
protected void onCreate(Bundle savedInstanceState)blog
protected void onStart()生命周期
protected void onResume()资源
protected void onPause()开发
protected void onStop()
protected void onRestart()
protected void onDestroy()
示例代码:
package com.liu.activity; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MyActivity extends Activity { private static final String lifeTag = "Activity生命周期"; //当Activity第一次被建立时调用,咱们能够在这进行初始化操做 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d(lifeTag,"---->oncreate()被执行"); } //onStart()方法在Activity开始被执行时调用,它紧随onCreate()方法以后调用 protected void onStart() { super.onStart(); Log.d(lifeTag,"---->onStart()被执行"); } //onResume()方法在Activity即将与用户交互时调用 protected void onResume() { super.onResume(); Log.d(lifeTag,"---->onResume()被执行"); } //当Activity从stopped状态启动时会调用onRestart(),后面老是调用onStart()方法 protected void onRestart() { super.onRestart(); Log.d(lifeTag,"---->onRestart()被执行"); } //在一个Activity启动另外一个Activity时调用,它一般被用来持久化数据、中止动画或其余耗费资源的动做, //下一个Activity必须等待这个方法返回后在启动,因此在这里作过多的操做 protected void onPause() { super.onPause(); Log.d(lifeTag,"---->onPause()被执行"); } //onStop()方法在一个新的Activity启动、其余的Activity切换到前台、当天Activity被销毁时都会被调用 protected void onStop() { super.onStop(); Log.d(lifeTag,"---->onStop()被执行"); } //Activitybe被销毁时调用 protected void onDestroy() { super.onDestroy(); Log.d(lifeTag,"---->onDestroy()被执行"); } }
启动程序调用的方法以下:
当按下拨号键使activity失去焦点调用的方法以下:
当按下返回键使Activity得到焦调用的方法以下,:
关闭Avtivity时调用的方法以下: