安卓分屏模式的简单适配

安卓分屏模式的简单适配

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);

参考

多窗口支持是时候学习多分屏了Android N App分屏模式完全解析(上)Android N App分屏模式完全解析(下)Android-7分屏体验,代码上手初见

相关推荐

深入剖析Java注解:从原理到实践的万字长文,带你彻底掌握!
离婚后孩子可怜吗?
365体育app网址

离婚后孩子可怜吗?

📅 07-18 👀 1689
2025年 百度推广全攻略『 投放策略+广告优化 』 看完这篇就会了