Android中用于显示的容器是Activity,一个Activity对应一个显示页面。
- Activity生命7方法
Activity对象运行与它自己的7个方法密切相关,从对象的创建到销毁,这7个方法在Activity不同阶段运行,具体的方法介绍如下表格所示:
| Method | Description | Killable | Next | 
| onCreate | 当启动新的 Activity 的时候被调用 | No | onStart() | 
| onStart | 当 Activity 对用户即将可见时调用 | No | onResume() or onStop() | 
| onRestart | 重新启动 Activity 时调用 (此方法是重启留在缓存中的 Activity ) | No | onStart() | 
| onResume | 当 Activity 界面可与用户交互时调用 | No | onPause() | 
| onPause | 当系统要启动一个其他的 activity 时调用,用于保存当前数据 | Yes | onResume() or onStop() | 
| onStop | 该 Activity 已经不可见时调用 | Yes | 
            
              
                onRestart() or
                 | 
| onDestroy | 当 Activity 被 finish 或手机内存不足被销毁的时候调用 | Yes | nothing | 
- Activity LifeCycle
Google官方提供了Activity LifeCycle的运行图,个人觉得官方提供的图非常简洁明了地介绍了Activity的运行周期:
如上图所示,当启动Activity1时, 首先调用 onCreate 方法初始化 Activity 的内容,当 Activity 显示出来的时候调用 onStar 方法(此时 Activity 只能看不能点击使用),当 Activity 可以被点击时,则调用 onResume 方法;
如果新一个Activity2完全覆盖原Activity1, 首先会让 Activity1 执行 onPause 方法暂存 Activity1 的数据,然后依次执行 onCreate 、 onStart 、 onResume 方法启动 Activity2, 最后因为 Activity1 会被 Activity2 完全覆盖,所以会执行 Activity1 的 onStop 方法;
另一种情况,如果新Activity2未完全覆盖Activity1(可能只是一个弹出层),则运行流程与上面说的执行流程相同,只是不会执行Activity1的onStop方法;
如果点击手机上的“返回”按钮,当前Activity对象会被销毁,此时就会执行onDestory方法。
- Android 的 Task
Android 的 Task 是一个 Activity 栈,保存的是所有正运行的 application 的 Activity 数据, Task 中的 Activity 可以分属于不同的 application, 一个 Activity 栈也可能是由一个或多个 Task 组成, Task 数据仅仅是临时保存,若手机内存不足或长时间未使用该 application , Android 会自动销毁 Task 部分 Activity 数据。
- onSaveInstanceState保存数据
       @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        if(savedInstanceState!=null && savedInstanceState.containsKey(ET_KEY)){
        	EditText et = (EditText)findViewById(R.id.et);
        	et.setText(savedInstanceState.getString(ET_KEY));
        }
    }
    
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		EditText et = (EditText)findViewById(R.id.et);
		outState.putString(ET_KEY, et.getText().toString());
	}
    
       
  
我的百度文库有关于Android Activity生命周期的ppt,免费下载,希望对大家有所帮助:
http://wenku.baidu.com/view/db19524ce518964bcf847cf9.html
附Activity生命周期例子,版本2.1


 
     
					 
					