下面要说的 是在Android中有一个要注意的:
Android中的activity对象生命周期比activity大。下面看代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在这里创建界面,做一些数据的初始化工作。
}
@Override
protected void onStart() {
super.onStart();
//到这一步变成用户可见不可交互的。
}
@Override
protected void onRestart() {
super.onRestart();
//從stop重新開始
}
@Override
protected void onResume() {
super.onResume();
//变成和用户可交互的
}
@Override
protected void onPause() {
super.onPause();
//到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情从上文的描述已经知道,应该在这里保存你的一些数据,
// 因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在 onResume里读出来,
// 注意:这个方法里做的事情时间要短,因为下一个activity不会等到这个方法完成才启动。
}
@Override
protected void onStop() {
super.onStop();
//变得不可见,被下一个activity覆盖了。
}
@Override
protected void onDestroy() {
super.onDestroy();
//这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了
// 节省空间将它暂时性的干掉,可以用isFinishing()来判断它,
// 如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,
// 不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。
}
详细的activity周期参考:http://blog.csdn.net/liuhe688/article/details/6733407。