说道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