多窗口模式编程介绍

来源:互联网 发布:4k电视直播软件 编辑:程序博客网 时间:2024/06/01 21:26
  • 资料来源《第一行代码》

多窗口下的生命周期

  • 多窗口模式并不会改变活动原有的生命周期。只是会将用户最近交互过的那个活动设置为运行状态(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>

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

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

禁用多窗口:

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

写死横竖屏:

android:screenOrientation="portrait|landscape"portrait:竖屏landscape:横屏
原创粉丝点击