• 安卓笔记20170112


    多窗口模式下的生命周期

    多窗口模式并不会改变活动原有的生命周期,只会将用户最近交互过的那个活动设置为运行状态,而将多窗口模式下另外一个可见的活动设置为暂停状态。如果这时用户又去和暂停的活动进行交互,那么该活动就变成运行状态,之前处于运动状态的活动变成暂停状态。

    从正常模式进入多窗口模式后活动的大小发生了比较大的变化,此时默认是会重新创建活动的。除此之外,像横竖屏切换也是会重新创建活动的

    生命周期应用举例:在多窗口模式下,用户仍然可以看到处于暂停状态的应用,那么像视频播放器之类的应用在此时就应该能继续播放视频才对。因此,我们最好不要在活动的onPause()方法中去处理视频播放器的暂停逻辑,而是应该在onStop()方法中去处理,并且在onStart()方法恢复视频的播放。

    正对进入多窗口模式时活动会被重新创建的问题,如果想改变这一默认行为,可以在配置文件中对活动进行如下配置:

    <activity

              android:name=".MainActivity"

              android:label="Fruits"

              android:configChanges="orientation|keyboardHidden|screenSize|screenLayout">

              ...

    </activity>

    加入了这行配置后,不管是进入多窗口模式,还是横竖屏切换,活动都不会被重新创建,而是会将屏幕发生变化的事件通知到Activity的onConfigurationChanged()方法当中。因此,如果想在屏幕发生变化的时候进行相应的逻辑处理,那么在活动中重写onConfigurationChanged()方法即可。

    禁用多窗口模式

    在配置文件的<application>或<activity>标签中加入如下属性即可:

    android:resizeableActivity=["true" | "false"];

    true表示应用支持多窗口模式,false表示应用不支持多窗口模式,如果不配置这个属性,那么默认值为true;

    注意:这个属性只有当项目的targetSdkVersion指定成24或者更高的时候才会有用,否则这个属性是无效的。解决方案为:Android规定,如果项目指定的targetSdkVersion低于24,并且活动是不允许横竖屏切换的,那么该应用也将不支持多窗口模式。

    默认情况下,我们的应用都是可以随着手机的旋转自由地横竖屏切换的,如果想要让应用不允许横竖屏切换,那么就需要在配置文件的<activity>标签中加入如下配置:

    android:screenOrientation=["portrait" | "landscape"]

    portrait表示活动只支持竖屏,landscape表示活动只支持横屏。

  • 相关阅读:
    VirtualBox-5.0.16设置windows与ubuntu的共享文件夹
    ubuntu普通账户获取root权限的方法以及su和su -的区别
    9、redis之事务2-Jedis的八种调用方式(事务、管道、分布式)介绍
    8、redis之事务1-redis命令
    3、redis之java client环境搭建
    2、redis原生的命令操作不同数据类型
    如何用消息系统避免分布式事务
    Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
    caffe windows学习:第一个测试程序
    caffe windows 学习第一步:编译和安装(vs2012+win 64)
  • 原文地址:https://www.cnblogs.com/919czzl/p/6278653.html
Copyright © 2020-2023  润新知