Android 7.0 多視窗模式

藍楓Amy發表於2017-03-22

多視窗模式簡介

由於手機螢幕大小的限制,傳統情況下一個手機只能同時開啟一個應用程式。從Android 7.0 開始引入多視窗模式功能,如許在一個螢幕中同時開啟兩個應用程式。

進入多視窗模式

注意:使用的是Genymotion模擬器
Google Nexus 5X-7.0.0

Android 7.0 多視窗模式
a.png

開啟任意程式,長按Overview即可進入多視窗模式。

多視窗模式,同時開啟兩個應用

Android 7.0 多視窗模式
b.png

當橫豎屏切換的時候,自動切換成左右分屏的多視窗模式

Android 7.0 多視窗模式
c.png

哈哈!這樣就可以一邊看電影一邊聊微信了

多視窗模式下的生命週期

多視窗模式並不會改變原有的生命週期,只會將使用者最近互動的那個活動設定為執行狀態,而將另一個設定為暫停狀態,如果使用者又和暫停的活動互動,那麼這個暫停的活動就會變成執行狀態,之前執行的活動就會變成暫停狀態。

當我們開啟一個程式的時候,首先會執行主介面的

onCreate()->onStart()->onResume()

然後長按Overview按鈕,進入多視窗模式:

onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()

我們會發現,當進入多視窗模式的時候,Activity會被重建。

針對進入多視窗模式時活動會被重建,如果想改變這種情況,可以在清單檔案中對Activity進行配置

   <activity android:name=".activity.SplashActivity"
                  android:configChanges="orientation|keyboardHidden|screenLayout|screenSize">

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
   </activity>複製程式碼

禁用多視窗模式

在清單檔案的application節點

 android:resizeableActivity="false"複製程式碼

resizeableActivity="false"表示禁用多視窗模式

resizeableActivity="true"表示啟用多視窗模式

注意:這個屬性只有當前專案的targetSdkVersion指定為24或者更高的時候才有效,否則會失效。

如果禁用多視窗模式,長按Overview會彈出Toast:
"App doesn't support split screen"

如果targetSdkVersion低於24,並且不允許橫豎屏切換,應用也將不支援多視窗模式

//螢幕一直為豎直方向
android:screenOrientation="portrait"複製程式碼

重新允許程式,長按Overview會彈出Toast:
"App doesn't support split screen",說明已成功禁用多視窗模式。

相關文章