Android N 添加了对同时显示多个应用窗口的支持。 手机上两个应用可以在“分屏”模式中左右并排或上下并排显示。
如何进入分屏模式
- 打开App,长按底部Overview按键(底部的正方形按键)
- 在多窗口任务页面,长按App,则可以拖动该 App至屏幕突出显示的区域,使 App 进入分屏模式。
开启分屏模式
App默认是支持分屏模式的。
如果App是基于Android N版本编译的,那么通过可以在manifest文件中设置Application或者Activity的属性
android:resizeableActivity=["true" | "false"]
。如果设置
resizeableActivity
属性为
true
则支持分屏模式,如果设置
resizeableActivity
属性为
false
则不支持分屏模式。
如果App的编译版本低于Android N, 那么当用户尝试进入分屏模式时候,系统会强制将App进入分屏模式。那么在这种情况下,在清单文件中的主Activity中设置
android:screenOrientation="portrait"
属性,就可以禁止进入分屏模式。
监听是否进入分屏模式
Activity 进入或退出分屏模式时系统将调用此方法。
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
super.onMultiWindowModeChanged(isInMultiWindowMode);
Log.i(LOG_TAG,"onMultiWindowModeChanged isInMultiWindowsMode:"+isInMultiWindowMode);
}
进入分屏模式后的Activity的生命周期
- 下面进入分屏模式后Activity的生命周期,从中可以看出当前Activity进行了销毁重建。
MainActivity: onMultiWindowModeChanged isInMultiWindowsMode:true
MainActivity: onPause
MainActivity: onStop
MainActivity: onDestroy
MainActivity: onCreate
MainActivity: onStart
MainActivity: onResume
MainActivity: onPause
- 退出分屏模式的生命周期
MainActivity: onPause
MainActivity: onStop
MainActivity: onDestroy
MainActivity: onCreate
MainActivity: onStart
MainActivity: onResume
MainActivity: onPause
MainActivity: onMultiWindowModeChanged isInMultiWindowsMode:true
在分屏模式中打开新的Activity
在启动Activity的时候添加标志Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT,
如果此时App处于分屏模式,那么新Activity将会在当前Activity的旁边。
Intent intent = new Intent(MainActivity.this, TestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
参考
版权声明:本文为wangkaishou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。