首页 > 代码库 > Android Activity类讲解(一)

Android Activity类讲解(一)

--by CY[kotomifi@gmail.com]

1.protected void onCreate(Bundle savedInstanceState) { throw new RuntimeException("Stub!");   }

  当创建一个Activity时,系统会自动调用onCreate方法来完成创建工作.该创建工作包括布局,监听器的绑定等.

  首先说一下Bundle 这个类,Bundle是一个键值对,跟Map类似,两个Activity之间的通信可以用Bundle类来实现.

  Bundle savedInstanceState对象则是保存程序上一次关闭(冻结)时的状态,也可以通过重写onFreeze方法来保存冻结前的状态.当程序启动(Activity 重新初始化时),会再次调用onCreate方法,从savedInstanceState中获取前一次的冻结状态,可以通过Bundle来将这一个Activity 中的内容传到下一个Activity 中.

  当一个Activity 结束前需要保存状态,就保存在savedInstanceState中,当其它Activity创建时,就能从中获得数据.

 

2.protected void onSaveInstanceState(Bundle outState) { throw new RuntimeException("Stub!");    }

  Android中的Activity通过onSaveInstanceState()方法保存Activity的状态,在onCreate或者onRestoreInstanceState方法中哦功能恢复,如果是通过onRestart方法运行,则只会执行onSaveInstanceState方法.

  图1-1是android Activity的生命周期.

  

  图1-1

 

3. protected void onRestoreInstanceState(Bundle savedInstanceState) { throw new RuntimeException("Stub!"); }

  解释见第2条

4.protected void onRestart() { throw new RuntimeException("Stub!");    }

  解释见第2条

5. protected void onStart() { throw new RuntimeException("Stub!");    }

  下面来结合来说一下onCreate, onStart, onResume, onPause, onRestart, onStop, onDestroy方法.当启动一个Activity时,系统会依次调用onCreate, onStart, onResume方法.

  从activity1启动activity2时,会先调用activity1的onPause方法,然后再调用activity2的onCreate, onStart, OnResume方法,若要完全覆盖activity1,则最后再调用activity1的onStop方法.

  

 onCreate方法:

  • Activity第一次创建时,被系统调用
  • 作用是设置布局文件,绑定监听器

 onStart方法:

  •  Activity可见时,会调用该方法

 onResume方法:

  • 用户可以获取当前焦点时,会调用该方法

 onPause方法:

  • 当新的Activity遮住当前Activity时,该方法会保存当前Activity中的数据

 onRestart方法:

  • 一个Activity没有被销毁时(调用onDestroy方法),再次使用该Activity时会调用onRestart方法

  onStop方法:

  • 当当前Activity完全不可见时,系统会调用该方法

 onDestroy方法:

  • 销毁一个Activity