Android Activity横竖屏转换的生命周期

  新创建一个Activity,用来此次测试。

先贴代码

 1 package com.hugo.apj.activitylifetest;
 2 
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.util.Log;
 6 
 7 public class MainActivity extends AppCompatActivity {
 8 
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity_main);
13         Log.i("TAG","OnCreate");
14     }
15 
16     @Override
17     protected void onStart() {
18         Log.i("TAG","OnStart");
19         super.onStart();
20     }
21 
22     @Override
23     protected void onPause() {
24         Log.i("TAG","OnPause");
25         super.onPause();
26     }
27 
28     @Override
29     protected void onStop() {
30         Log.i("TAG","OnStop");
31         super.onStop();
32     }
33 
34     @Override
35     protected void onRestart() {
36         Log.i("TAG","OnRestart");
37         super.onRestart();
38     }
39 
40     @Override
41     protected void onResume() {
42         Log.i("TAG","OnResume");
43         super.onResume();
44     }
45 
46     @Override
47     protected void onDestroy() {
48         Log.i("TAG","OnDestroy");
49         super.onDestroy();
50     }
51 }

以下为测试结果:

第一次运行出现:

  

08-05 15:56:48.282 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnCreate
08-05 15:56:48.283 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnStart
08-05 15:56:48.283 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnResume

先清除Logcat,从竖屏转换到横屏:

08-05 16:01:01.363 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnPause
08-05 16:01:01.364 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnStop
08-05 16:01:01.364 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnDestroy
08-05 16:01:01.429 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnCreate
08-05 16:01:01.429 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnStart
08-05 16:01:01.430 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnResume

同样清除Logcat,再从横屏转换到竖屏:

08-05 16:01:37.330 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnPause
08-05 16:01:37.333 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnStop
08-05 16:01:37.333 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnDestroy
08-05 16:01:37.399 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnCreate
08-05 16:01:37.399 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnStart
08-05 16:01:37.400 20772-20772/com.hugo.apj.activitylifetest I/TAG: OnResume

 

 

从以上结果可以发现,在不讨论添加其他限制代码的情况下,横竖屏转换都会重新走完除了OnRestart外的其他六个生命周期。

posted @ 2016-08-05 16:06  52赫兹  阅读(156)  评论(0编辑  收藏  举报