多視窗模式簡介
由於手機螢幕大小的限制,傳統情況下一個手機只能同時開啟一個應用程式。從Android 7.0 開始引入多視窗模式功能,如許在一個螢幕中同時開啟兩個應用程式。
進入多視窗模式
注意:使用的是Genymotion模擬器
Google Nexus 5X-7.0.0
開啟任意程式,長按Overview即可進入多視窗模式。
多視窗模式,同時開啟兩個應用
當橫豎屏切換的時候,自動切換成左右分屏的多視窗模式
哈哈!這樣就可以一邊看電影一邊聊微信了
多視窗模式下的生命週期
多視窗模式並不會改變原有的生命週期,只會將使用者最近互動的那個活動設定為執行狀態,而將另一個設定為暫停狀態,如果使用者又和暫停的活動互動,那麼這個暫停的活動就會變成執行狀態,之前執行的活動就會變成暫停狀態。
當我們開啟一個程式的時候,首先會執行主介面的
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",說明已成功禁用多視窗模式。