多窗口模式编程介绍

  • 资料来源《第一行代码》

多窗口下的生命周期

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

多窗口会改变应用大小,先启动activity,再进入多窗口模式,activity会重建。重建后,进入onPause方法。

在多窗口模式下,用户仍然可以看到处于暂停状态的应用,所以视频播放之类的应用在此刻应该继续播放视频才对。因此,我们最好不要在activiy的onPause中暂停播放,而是在onStop中暂停,onStart中恢复。

活动不被重建方法:

<activity android:name=".MainActivity"
    android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
   android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

进入多窗口,或者横竖屏切换时,回调该方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

禁用多窗口:

android:resizeableActivity="true|false"
默认为true,表示支持多窗口。false为不支持。

注意,这个参数只有在targetSdkVersion指定成24或更高版本才有用。
如果一些老项目没有将targetSdkVersion指定到24,怎么办呢,有个方法,就是写死横竖屏。这样,应用也不会支持多窗口了。

写死横竖屏:

android:screenOrientation="portrait|landscape"
portrait:竖屏
landscape:横屏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值