前言
现在我们都知道Android是通过栈来管理Activity的,从而根据Activity何时入栈何时出栈以及在栈中的位置,Android将Activity的活跃周期做了分类。
先让我们看一下Activity的完整生命周期:
先让我们看一下Activity的完整生命周期:
onCreate();
onStart();
onResume();
onPause();
onStop();
onDestroy();
onRestart();
onResume();
onPause();
onStop();
onDestroy();
onRestart();
当然,onRestart();是你要重新恢复一个已经原来已经创建过的Activity时才会调用的方法。
1.理解生命周期前先理解栈
栈,在这里也可以叫做返回栈,管理Activity,它属于后进先出的的数据结构,你启动一个Activity,这个Activity会入栈,并且处于栈顶的位置,当你将Activity销毁的时候,这个Activity会出栈;Android总是会显示处于栈顶位置的Activity。
根据栈来划分Activity的活动状态
运行状态:Activity处于栈顶,可以与用户进行交互。
暂停状态:Activity不位于栈顶,但是仍然可见。
停止状态:Activity不位于栈顶,并且完全不可见。
销毁状态:Activity从栈中移除。
2.Activity生命周期
onCreate();--->这个方法会在活动创建的初始时候创建,你可以在这个方法里面设置你的布局,初始化数据以及其他的一些初始化操作。
onStart();--->该方法是Activity由不可见变为可见的时候调用。
onResume():--->当Activity处于栈的顶端,已经准备好与用户进行交互的时候,这个方法会调用。
onPause();--->当Activity准备去启动一个新的Activity或者恢复一个原有的Activity时,方法会被调用。
onStop();--->当Activity不在处于栈顶的时候,并且完全不可见,该方法会被调用。
onDestory();--->当Activity被移除栈的时候调用,活动会被销毁。
onRestart();--->当Activity创建完成却又被暂停,当再次恢复这个活动的时候,该方法会被调用。
onStart();--->该方法是Activity由不可见变为可见的时候调用。
onResume():--->当Activity处于栈的顶端,已经准备好与用户进行交互的时候,这个方法会调用。
onPause();--->当Activity准备去启动一个新的Activity或者恢复一个原有的Activity时,方法会被调用。
onStop();--->当Activity不在处于栈顶的时候,并且完全不可见,该方法会被调用。
onDestory();--->当Activity被移除栈的时候调用,活动会被销毁。
onRestart();--->当Activity创建完成却又被暂停,当再次恢复这个活动的时候,该方法会被调用。