Android7.0多窗口模式初探

来源:互联网 发布:软件测试工作报告 编辑:程序博客网 时间:2024/06/06 17:55

2016年8月,谷歌推出android7.0牛轧糖系列,其中包含有的新功能就是多窗口模式。如图所示:


(图片来源:android官网)


今天主要来探究下在开启多窗口模式下,activity生命周期经历了怎样的变化。

代码如下:

public class MoonMultWindow extends AppCompatActivity {    private static final String TAG = "MoonMultWindow";    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_moon_mult_window);        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 onDestroy() {        super.onDestroy();        Log.d(TAG, "onDestroy");    }}

开启多窗口模式:长按Overview

gif效果如下:



下面是开启多窗口模式时生命周期的变化:

07-14 13:25:56.762 21632-21632/zsf.example.com.myalltest D/MainActivity: onPause07-14 13:25:57.672 21632-21632/zsf.example.com.myalltest D/MainActivity: onStop07-14 13:25:57.672 21632-21632/zsf.example.com.myalltest D/MainActivity: onDestroy07-14 13:25:57.725 21632-21632/zsf.example.com.myalltest D/MainActivity: onCreate07-14 13:25:57.726 21632-21632/zsf.example.com.myalltest D/MainActivity: onStart07-14 13:25:57.727 21632-21632/zsf.example.com.myalltest D/MainActivity: onResume07-14 13:25:57.728 21632-21632/zsf.example.com.myalltest D/MainActivity: onPause


关闭多窗口模式生命周期变化:

07-14 13:26:03.882 21632-21632/zsf.example.com.myalltest D/MainActivity: onStop07-14 13:26:03.883 21632-21632/zsf.example.com.myalltest D/MainActivity: onDestroy07-14 13:26:03.894 21632-21632/zsf.example.com.myalltest D/MainActivity: onCreate07-14 13:26:03.895 21632-21632/zsf.example.com.myalltest D/MainActivity: onStart07-14 13:26:03.896 21632-21632/zsf.example.com.myalltest D/MainActivity: onResume07-14 13:26:03.896 21632-21632/zsf.example.com.myalltest D/MainActivity: onPause07-14 13:26:04.393 21632-21632/zsf.example.com.myalltest D/MainActivity: onResume

禁用多窗口模式在AndroidManifest.xml中的<application></application>加入如下属性即可:

android:resizeableActivity="false"