首先,我们创建一个新的android module。然后把与生命周期相关的7个方法添加到java文件中,代码如下:
public class MainActivity extends Activity {
private String test="TagTest";
private Button second;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
second= (Button) findViewById(R.id.btn);
Log.d(test,"MainActivity.onCreate");
second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
protected void onStart(){
super.onStart();
Log.d(test,"MainActivity.onStart");
}
protected void onResume(){
super.onResume();
Log.d(test,"MainActivity.onResume");
}
protected void onPause(){
super.onPause();
Log.d(test,"MainActivity.onPause");
}
protected void onStop(){
super.onStop();
Log.d(test,"MainActivity.onStop");
}
protected void onDestroy(){
super.onDestroy();
Log.d(test,"MainActivity.onDestroy");
}
protected void onRestart(){
super.onRestart();
Log.d(test,"MainActivity.onRestart");
}
}
同时,我们还在MainActivity中添加了一个按键,用来跳转到SecondActivity中。
接下来我们再创建一个新的Activity,命名为SecondActivity。在创建新的Activity后先到AndroidManifest添加SecondActivity,然后同样在SecondActivity中添加进与生命周期相关的7个方法。代码如下:
public class SecondActivity extends Activity{
private String test="TagTest";
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
Log.d(test,"SecondActivity.onCreate");
}
protected void onStart(){
super.onStart();
Log.d(test,"SecondActivity.onStart");
}
protected void onResume(){
super.onResume();
Log.d(test,"SecondActivity.onResume");
}
protected void onPause(){
super.onPause();
Log.d(test,"SecondActivity.onPause");
}
protected void onStop(){
super.onStop();
Log.d(test,"SecondActivity.onStop");
}
protected void onDestroy(){
super.onDestroy();
Log.d(test,"SecondActivity.onDestroy");
}
protected void onRestart(){
super.onRestart();
Log.d(test,"SecondActivity.onRestart");
}
}
接下来运行程序,在Logcat界面输出程序运行的状态,如下图:
首先会先运行MainActivity中的onCreate()、onStart()、onResume()方法,此时程序就会处于可见状态。接着按下按键跳到SecondActivity,首先是MainActivity先执行onPause(),此时Activity变为部分可见状态,然后SecondActivity执行完onCreate()、onStart()、onResume()三个方法编程可见状态,MainActivity就执行onStop()方法变成不可见状态。当按下返回键后退出SecondActivity,就执行SecondActivity的onPause()和onStop()方法。
以下为官方提供的生命周期图。