分屏

app默认允许分屏
禁用分屏:

  1. 在AndroidManifest的Application节点添加属性
android:resizeableActivity="false"
  1. activity节点的screenOrientation也会禁用,该属性值太多没有一一测试,可以肯定的是常用的portrait和landscape会把分屏禁用
android:screenOrientation="portrait"

在进入分屏和退出分屏模式,activity默认会重启
禁止activity重启:

  1. 有人说是activity的configChanges属性值设为“screenLayout|orientation”,但是该方法我测试没有效果
  2. 实测有效的是将值设为:“screenSize|smallestScreenSize|screenLayout|orientation”
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"

判断是否是分屏:isInMultiWindowMode(),true为分屏模式

进入和退出分屏回调函数:onMultiWindowModeChanged(boolean isInMultiWindowMode)

下面给出分屏的生命周期:
在未禁用分屏时

  1. 切换至多任务页面:onPause----》onSaveInstanceState—》onStop
  2. 进入分屏:onDestroy----》onCreate—》onStart–》onRestoreInstanceState----》onResume—》onPause----》onMultiWindowModeChanged----》onResume
  3. 来回操作自测app和其他app:onPause ----》onResume 无限循环
  4. 退出分屏:onPause—》onSaveInstanceState—》onStop–》onDestroy–》onCreate–》onStart—》onRestoreInstanceState----》onResume—》onConfigurationChanged–》onMultiWindowModeChanged—》onPause–》onSaveInstanceState–》onStop

禁用分屏后:(前面都一样)

  1. 进入分屏:onConfigurationChanged–》onStart–》onMultiWindowModeChanged–》onResume
  2. 退出分屏:onConfigurationChanged–》onConfigurationChanged—》onMultiWindowModeChanged

补充说明:在测试的时候发现小米手机分屏和其他手机分屏实现不一样

  1. 进入分屏后,来回操作上面两个app,自测的app会不断的调用onPause和onResume方法,但是小米不会
  2. 在分屏之间写代码没有严格区分onStart、onResume方法和onPause、onstop方法,但是如果应用需要支持分屏就要注意了,多数手机分屏模式操作上下两个app是onPause和onResume之间来回调用的,所以例如视频暂停等问题应该把暂停放stop里面(小米应该无所谓)
  3. 分屏后的app占用屏幕的宽高是可调节的,所以横竖屏是非绝对。如果通过screenOrientation来强制横屏或者竖屏,这样会把分屏也禁掉,所以如果你的哪个页面需要强制横屏(竖屏)展示,可以通过在代码中控制,在onCreate中添加,或者在BaseActivity中添加:

强制横屏:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

强制竖屏:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

更多相关文章

  1. 移动接口开发:JAVA判断是android还是ios 端请求
  2. Android中的EditText默认时不弹出软键盘的方法
  3. android studio 连接真机测试 小米8
  4. Ubuntu 13.04 小米2S连接Eclipse真机调试
  5. camp
  6. 【幻灯片分享】Android程序的编译,安装和运行 | 小米科技 汪文俊
  7. Android之仿小米便签程序
  8. 如何在android上去控制开发进度
  9. Android实现多条Toast快速显示(强制中止上一条Toast的显示)

随机推荐

  1. Android(安卓)学习1----控件的学习
  2. android实现进程注入
  3. android 处理运行时改变 开发文档翻译
  4. Android开机动画过程
  5. Activity的四种启动模式和onNewIntent()
  6. RelativeLayout 属性
  7. 沉浸式状态栏StatusBar
  8. Android(安卓)Service 服务详细讲解
  9. Android的四种启动方式
  10. Handler机制情景分析