activity的生命周期:
以下是对他的七个方法的简单理解
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
启动一个新的Activity 就会依次由 Android 操作系统调用:
onCreate: Activity 第一次被调用;设置布局文件、绑定监听器等操作。
onStart:当 Activity 被显示的时候调用
onResume:当 Activity 能获得用户焦点的时候(即用户可以操作该 activity 的时候)。
在当前运行的Activity 被打断时(来电话或跳到另一个 Activity 时)调用 onPause ,在函数内部编写一些保存当前 Activity 数据的代码。以待返回时还原数据。
当一个Activity 处于不可见状态的时候,就会调用该 Activity 的 onStop 方法。比如跳转到新的 Activity后。如果跳转出来的是一个对话框( Dialog ),则不会调用 onStop 方法。
当一个Activity 调用了 onStop 之后又被返回是,则是调用 onRestart 方法,然后再 onStart 和onResume 。
当明确地调用了一个Activity 的 finish() 方法,或当 Android 系统资源不足,而某个 Activity 处于不可见状态,则系统会选择销毁掉第一个不可见的 Activity ,则系统就会调用这个 Activity 的 onDestroy 方法,销毁这个 Activity 。
activity的状态:
activity
的生命周期主要包含一些三种状态:
(
1
)运行态(
Resumedstate
)
此时
Activity
程序显示在屏幕前台,并且具有焦点,可以与用户的操作进行交互,如向用户提供信息、捕获用户单击按钮的事件并做处理。
(
2
)暂停态(
PausedState
)
此时
Activity
程序失去了焦点,并被其他处于运行态的
otherActivity
取代在屏幕显示,但
otherActivity
程序并没有覆盖整个屏幕或者具有半透明的效果—此状态即为暂停态。处于暂停态的
Activity
仍然对用户可见,并且是完全存活的(此时
Activity
对象存留在内存里,保留着所有状态与成员信息并保持与窗口管理器的连接)。如果系统处于内存不足的情况下,会杀死这个
Activity
。
(
3
)停止态(
StoppedState
)
当
Activity
完全被另一个
otherActivity
覆盖时(此时
otherActivity
显示在屏幕前台),则处于停止态。处于停滞态的
Activity
依然是存活的(此时
Activity
对象依然存留在内存里
,保留着所有的状态和与成员信息,但没有与窗口管理器保持连接),而且它对用户是不可见的,如果其他地方需要内存,系统会销毁这个
Activity
。
处于暂停态
(PausedState)
或者停止态
(Stopped State)
的
Activity
,系统可以通过调用
finish
()方法或者直接终止它的进程来销毁此
Activity
(从内存中清楚此
Activity
对象)。被
finish()
或者销毁的
Activity
再重新打开时,是需要再次初始化此
Activity
的。