Activity是安卓中最最重要的一个基础组件,下面就对它的一些系统性的总结分享给各位开发人员,帮助大家更好的理解和使用。
1、Activity显示和销毁原则:
Activity的顺序是按照栈的先进后出原则进行的。当启动其他Activity时当前的这个Acitivity就会被停止,新的Activity将会压入栈中,同时获取用户焦点;当用户按返回键时,当前的这个Activity将会被销毁,前一个Activity重新恢复。
2、Activity的七个方法:
onCreate()
onStart()
onRestart()
onResume()
onPause()
onStop()
onDestroy()
3、Activity的三个阶段:
开启Activity阶段:依次执行onCreate()、onStart()、onResume()这三个方法
Activity重新获取焦点阶段:依次执行onRestart()、onStart()、onResume()这三个方法
关闭Activity阶段:依次执行onPause()、onStop()、onDestory()这三个方法
4、Activity整体生命周期:
onCreate()->onStart()->onRestart()->onResume()->onPause()->onStop()->onDestroy()
5、Activity的两个子生命周期:
焦点生命周期:onResume()->onPause()(焦点获取与失去的循环,但是Activity始终是可见的,焦点失去只是被覆盖)
可视生命周期:onStart()->onRestart()->onResume()->onPsuse()->onStop()(Activity可见与不可见的循环)
6、下面举一个在方法中输出日志的例子,来看一下Activity使用的过程中各个方法的调用情况。
运行添加下面代码的安卓工程,显示这个Activity的页面以后,翻看运行的app或服务,点击其中一个,会进入到其他页面,然后再按返回键回到咱们这个安卓工程页面,接着再按一次返回键,退出这个安卓工程。并在这个过程中实时查看日志的输出信息。以这样的方式来理解安卓生命周期中各个方法的调用情况。
MainActivity.java文件:
private final String TAG="MainActivity"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG,"onCreate"); } protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG,"onStart"); } protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG,"onRestart"); } protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG,"onResume"); } protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG,"onPause"); } protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG,"onStop"); } protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG,"onDestroy"); }