Android
学习自修笔记(二)
Activity
的生命周期
————将军的Android
自修之途
在Activity
从创建到销毁的过程中需要在不同的阶段调用7
个生命周期方法。这7
个生命周期方法的定义如下:
protected
void
onCreate(Bundle savedInstanceState);
protected
void
onDestroy()
protected
void
onPause()
protected
void
onRestart()
protected
void
onResume()
protected
void
onStart()
protected
void
onStop()
从图中所示的
Activity
生命周期方法调用示意图不难看出,在整个
Activity
的生命周期中包含两层循环,第一层循环是:
onPause—>onResume->onPause.
第二层循环是
onStop->onRestart->onStart->onResume->onPause->onStop.
我们可以将这两层循环看成是整个
Activity
生命周期中的子生命周期。第一层循环称为焦点生命周期,第二层循环称为可视生命周期。也就是说,第一层循环在
Activity
焦点的获得与失去的过程中循环,在这一过程中,
Activity
始终是可见的。第二层循环是在
Activity
可见于不可见的过程中循环,在这个过程中伴随着
Activity
焦点的获得与失去。也就是说,
Activity
首先会被显示,然后会获得焦点,接着失去焦点,最后由于弹出其他的
Activity
使当前的
Activity
变成不可见。因此
,Activity
有如下
3
种生命周期:
整体生命周期:
onCreate->......->onDestroy.
可视生命周期:
onStart->.. . .->onStop
焦点生命周期:
onResume->…………->onPause.
public
class
CycleActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
Log.d(
"onCreate"
,
"onCreateMethod is executed."
);
//setContentView(R.layout.activity_cycle);
}
protected
void
onDestroy()
{
super
.onDestroy();
Log.d(
"onDestroy"
,
"onDestroyMethod is executed."
);
}
protected
void
onPause()
{
super
.onPause();
Log.d(
"onPause"
,
"onPauseMethod is executed."
);
}
protected
void
onRestart()
{
super
.onRestart();
Log.d(
"onRestart"
,
"onRestartMethod is executed."
);
}
protected
void
onResume()
{
super
.onResume();
Log.d(
"onResume"
,
"onResumeMethod is executed."
);
}
protected
void
onStart()
{
super
.onStart();
Log.d(
"onStart"
,
"onStartMethod is executed."
);
}
protected
void
onStop()
{
super
.onStop();
Log.d(
"onStop"
,
"onStopMethod is executed."
);
}
}
注意:在
Activity
的子类中实现这
7
个生命周期方法时应该在这些方法的一开始调用
Activity
类中的生命周期方法(如
super.onCreate
),否则系统会抛出异常。