day_03 生命周期

  • Activity定义了七个回调方法:
  1. onCreate:继承完活动后,都会重写这个方法,是因为,这个是整个活动的主入口,地位跟java里的main函数差不过,它会在活动刚创建的时候调用。
  2. onStart:这个是在活动由不可见变为可见的时候调用。
  3. onResume:活动准备好和用户交互的时候调用,也就是界面显示出来的时候它就调用,位于栈顶。
  4. onPause:暂停当前活动准备调用另一个活动的时候调用。
  5. onStop:当前活动完全不可见的时候调用,如果只是弹出一个小小的对话框,那么会执行onPause不会执行onStop。
  6. onDestroy:这个在活动被销毁的时候调用。
  7. 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结束了第二个活动。

 

posted @ 2018-08-08 09:53  一炜以航  阅读(99)  评论(0)    收藏  举报