曾经学习Android的时候学到过Activity的横竖屏切换,只是由于当时项目中的Activity都是android:screenOrientation="portrait"的,所以就比较少的涉及到横竖屏问题。最近用到了横竖屏切换,所以把这个问题总结出来。之前网上看了些资料,关于横竖屏切换的生命周期有些blog是有问题的(本人亲测是这样的),所以先简单总结了下横竖屏切换的生命周期,供大家参考,有任何问题,欢迎一起交流。


代码:

package com.hongri.phonescreenswitch;import android.app.Activity;import android.content.res.Configuration;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity {    public static String TAG = "yao";    @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 onRestart() {        super.onRestart();        Log.d(TAG, "onRestart()");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.d(TAG, "onDestroy()");    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        Log.d(TAG, "onConfigurationChanged()");        if (this.getResources().getConfiguration().orientation == newConfig.ORIENTATION_LANDSCAPE) {            Log.d(TAG, "现在是横屏landscape");        } else if (this.getResources().getConfiguration().orientation == newConfig.ORIENTATION_PORTRAIT) {            Log.d(TAG, "现在是竖屏Portrait");        }    }}


1、不设置Activity的android:configChanges或者android:configChanges="orientation"时,横竖屏切换时都会重新调用各个生命周期。

(红框代表屏幕切换调用的生命周期/方法)


2、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"(注意:这里如果没有screenSize,有些手机是无法调用onConfigurationChangee方法的)时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

Android 横竖屏切换生命周期_第1张图片

更多相关文章

  1. Android中经常用到的方法--SDcard下文件的操作
  2. Android Intent调用方法总结
  3. Android 应用程序退出后不在运行列表中显示的方法
  4. ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已
  5. Android ADB使用方法
  6. Handle详解和使用方法
  7. Android下引用系统库的方法及问题
  8. Android最实用的各种技能点的网址链接(每天都会更新,希望大家用的

随机推荐

  1. ch028 Android(安卓)断点续传
  2. ch016 Android(安卓)自定义对话框.
  3. Android配置文件中标签
  4. Project Volta 让 Android(安卓)续航提升
  5. android:id="@+id/title"、android:id="@
  6. Android多点触控
  7. android企业级商城源码、360°全景图VR源
  8. Android渗透测试Android渗透测试入门教程
  9. android状态栏工具类
  10. Android知识图谱:我们到底需要学习哪些And