昨天是理清楚了生命周期的大概理论知识。本来是想上传代码的,结果模拟器出现问题,今天早上重新弄了一下,终于搞好啦。
直接上代码,学习了郭霖大神的,一个普通活动(NormalActivity),一个对话式活动(DialogActivity)。
public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
setContentView(R.layout.activity_main);
Button startNormalActivity=(Button) findViewById(R.id.start_normal_activity);
Button startDialogActivity=(Button) findViewById(R.id.start_dialog_activity);
startNormalActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,NormalActivity.class);
startActivity(intent);
}
});
startDialogActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,DialogActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG,"onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG,"onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG,"onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG,"onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG,"onDestroy");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG,"onRestart");
}
}
观看Logcat中的日志:
1.运行程序的时候:
03-03 03:42:31.057 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onCreate
03-03 03:42:31.583 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onStart
03-03 03:42:31.603 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onResume
MainActivity第一次依次执行onCreate(),onStart(),onResume()方法
2.点击按钮,启动NormalActivity:
03-03 03:59:21.943 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onPause
03-03 03:59:22.865 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onStop
NormalActivity将MainActivity完全遮住啦
3.按Back键返回MainActiviity
03-03 04:08:18.537 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onRestart
03-03 04:08:18.538 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onStart
03-03 04:08:18.539 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onResume
之前MainActivity停止啦,现在MainActivity重新启动,所以onRestart()方法执行,但是onCreate()不会执行,因为没有重新创建
4.点击按钮,启动DialogActivity
03-03 04:14:04.614 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onPause
DialogActivity没有遮住MainActivity,MainActivity只是暂停状态
5按Back键返回MainActiviity
03-03 04:16:46.167 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onResume
6.退出程序
03-03 04:17:52.699 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onPause
03-03 04:17:55.423 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onStop
03-03 04:17:55.473 3035-3035/com.example.zx.activitylifecycletest D/MainActivity: onDestroy
总结:以前只是硬记记住了生命周期的一些皮毛,还不如敲一段来的明白,多敲多想多总结。