day_03 生命周期
- Activity定义了七个回调方法:
- onCreate:继承完活动后,都会重写这个方法,是因为,这个是整个活动的主入口,地位跟java里的main函数差不过,它会在活动刚创建的时候调用。
- onStart:这个是在活动由不可见变为可见的时候调用。
- onResume:活动准备好和用户交互的时候调用,也就是界面显示出来的时候它就调用,位于栈顶。
- onPause:暂停当前活动准备调用另一个活动的时候调用。
- onStop:当前活动完全不可见的时候调用,如果只是弹出一个小小的对话框,那么会执行onPause不会执行onStop。
- onDestroy:这个在活动被销毁的时候调用。
- onRestart:在活动从暂停变为运行之前调用。
- 图示解释:
两张图凑成完整的图


- 操作解释:
用Log.d打印出日志方便观察
1 public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 Log.d("MainActivity","onCreate...run..."); 7 setContentView(R.layout.activity_main); 8 Button btn_next = (Button) findViewById(R.id.btn_next); 9 btn_next.setOnClickListener(new View.OnClickListener() { 10 @Override 11 public void onClick(View v) { 12 Intent intent = new Intent(MainActivity.this,SecondActivity.class); 13 startActivity(intent); 14 } 15 }); 16 17 } 18 19 @Override 20 protected void onStart() { 21 super.onStart(); 22 Log.d("MainActivity","onStart...run..."); 23 } 24 25 @Override 26 protected void onResume() { 27 super.onResume(); 28 Log.d("MainActivity","onResume...run..."); 29 } 30 31 @Override 32 protected void onPause() { 33 super.onPause(); 34 Log.d("MainActivity","onPause...run..."); 35 } 36 37 @Override 38 protected void onStop() { 39 super.onStop(); 40 Log.d("MainActivity","onStop...run..."); 41 } 42 43 @Override 44 protected void onDestroy() { 45 super.onDestroy(); 46 Log.d("MainActivity","onDestroy...run..."); 47 } 48 49 @Override 50 protected void onRestart() { 51 super.onRestart(); 52 Log.d("MainActivity","onRestart...run..."); 53 } 54 }
1 public class SecondActivity extends AppCompatActivity { 2 @Override 3 protected void onCreate(@Nullable Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 Log.d("SecondActivity","onCreate...run..."); 6 setContentView(R.layout.activity_second); 7 Button btn_back = (Button) findViewById(R.id.btn_back); 8 btn_back.setOnClickListener(new View.OnClickListener() { 9 @Override 10 public void onClick(View v) { 11 finish(); 12 } 13 }); 14 15 } 16 17 @Override 18 protected void onStart() { 19 super.onStart(); 20 Log.d("SecondActivity","onStart...run..."); 21 } 22 23 @Override 24 protected void onResume() { 25 super.onResume(); 26 Log.d("SecondActivity","onResume...run..."); 27 } 28 29 @Override 30 protected void onPause() { 31 super.onPause(); 32 Log.d("SecondActivity","onPause...run..."); 33 } 34 35 @Override 36 protected void onStop() { 37 super.onStop(); 38 Log.d("SecondActivity","onStop...run..."); 39 } 40 41 @Override 42 protected void onDestroy() { 43 super.onDestroy(); 44 Log.d("SecondActivity","onDestroy...run..."); 45 } 46 47 @Override 48 protected void onRestart() { 49 super.onRestart(); 50 Log.d("SecondActivity","onRestart...run..."); 51 } 52 }
运行起来:
先打印了这三个:

点击切换下一个界面的按钮后:
打印了这四个:
上个活动完全不可见的时候,打印出了onStop。

点击BACK,返回到第一个界面,并且结束(finish)掉这个活动

点击后,又打印出了
08-07 21:47:29.647 5361-5361/com.zywwgx.thirdprogram D/SecondActivity: onPause...run... 08-07 21:47:29.661 5361-5361/com.zywwgx.thirdprogram D/MainActivity: onRestart...run... 08-07 21:47:29.666 5361-5361/com.zywwgx.thirdprogram D/MainActivity: onStart...run... 08-07 21:47:29.666 5361-5361/com.zywwgx.thirdprogram D/MainActivity: onResume...run...

后来,打印出了Stop跟Destroy结束了第二个活动。

浙公网安备 33010602011771号