说道Activity生命周期有张图肯定要挂一下的:
onCreate>>>onStart>>>onResume>>>onPause>>>onStop>>>onDestroy | onRestart

下面写了一个activity来测试这些内容:
package com.hebo.studytest.activitys;
import com.hebo.studytest.R;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* Activity生命周期 and instanceState保存和恢复数据
* @author HeBo
* @Version V1.0
*/
public class MainActivity extends Activity {
private final String TAG = "myActivity=====";
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(TAG,"onCreate====");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.i(TAG,"onStart====");
super.onStart();
}
@Override
protected void onResume() {
Log.i(TAG,"onResume====");
super.onResume();
}
@Override
protected void onPause() {
Log.i(TAG,"onPause====");
super.onPause();
}
@Override
protected void onStop() {
Log.i(TAG,"onStop====");
super.onStop();
}
@Override
protected void onDestroy() {
Log.i(TAG,"onDestroy====");
super.onDestroy();
}
@Override
protected void onRestart() {
Log.i(TAG,"onRestart====");
super.onRestart();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
Log.i(TAG,"onSaveInstanceState====");
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.i(TAG,"onRestoreInstanceState====");
super.onRestoreInstanceState(savedInstanceState);
}
}
第一次运行效果如图: onCreate>>>onStart>>>onResume

此时按下手机home键: onPause>>>onSaveInstanceState>>>onStop

再次返回APP: onRestart>>>onStart>>>onResume
按返回键,让程序退出: onPause>>>onStop>>>onDestroy

activity在横竖屏切换的时候,周期也会发生一些变化,我们从头开始看:
1.首先第一次启动APP,默认竖屏,周期情况如图:

2.旋转屏幕为横屏:
onPause>>>onSaveInstanceState>>>onStop>>>onDestory>>>onCreate>>>onStart>>>onRestoreInstanceState>>>onResume

3.再次旋转为竖屏:
onPause>>>onSaveInstanceState>>>onStop>>>onDestory>>>onCreate>>>onStart>>>onRestoreInstanceState>>>onResume

本文详细解析了Android Activity的生命周期,包括从创建到销毁的各个关键阶段,并展示了如何在不同状态间保存和恢复数据,特别关注了横竖屏切换时的生命周期变化。
539

被折叠的 条评论
为什么被折叠?



