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 版权协议,转载请附上原文出处链接和本声明。
