很久前看过android屏幕切换引起的Activity生命周期重新加载的机制,不过感觉现在的Android系统已经不再是那样的了。

所以今天,让我们再看Android屏幕切换引起的生命周期变化

首先来看MainActivity:

import android.content.res.Configuration;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.util.Log;public class MainActivity extends ActionBarActivity {    private final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.d(TAG, "onCreate");    }    @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 onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        Log.d(TAG, "onSaveInstanceState");    }    @Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);        Log.d(TAG, "onRestoreInstanceState");    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        Log.d(TAG, "onConfigurationChanged");    }}
AndroidManifest.xml中:android:configChanges="orientation|keyboardHidden|screenSize"

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.tel.test" >    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:configChanges="orientation|keyboardHidden|screenSize"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>
不管切横屏还是竖屏的时候都只是调用:onConfigurationChanged一次


当去掉screenSize后,切换横竖屏(不管是横屏切竖屏还是竖屏切换横屏)效果还是一样:生命周期重新执行了一次,同时调用了onSaveInstanceState和onRestoreInstanceState


在此处去掉keyboardHidden效果一样,同上,生命周期重新执行一次

在AndroidManifest.xml中把android:configChanges全部去掉效果也是同上,生命周期重新执行一次




更多相关文章

  1. Android:使用ViewPager实现左右滑动切换图片 (简单版)
  2. Android(安卓)4.0 横竖屏切换注意事项
  3. 在Android中自动实现横竖屏切换的问题
  4. Android(安卓)横竖屏切换的Activity生命周期演示-面试常问题
  5. Android横屏竖屏切换的问题
  6. Android(安卓)Activity界面切换添加动画特效
  7. 对android的Activity切换时输入法不弹出来的解决办法
  8. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
  9. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像

随机推荐

  1. Android(安卓)studio 3.1.3 无法获取pom
  2. Android中使用log4j
  3. android获取系统wifi状态等
  4. 读取android根目录下的文件或文件夹
  5. 非UI线程可不可以更新UI(一)
  6. Android(安卓)Studio Settings Repositor
  7. Android(安卓)Stuido 更新问题
  8. 屏幕切换,保存内容
  9. Android中的设计模式(结合大话设计模式+
  10. android TextView的使用总结