Android的分屏模式開發注意事項

android7.0 的API開始有了分屏功能,在測試時注意到主頁面在分屏模式下,頁面所佔比例在增大或者減少的時候都會調用oncreat方法,因此查資料總結一下分屏對頁面的生命週期的影響以及開發時的注意事項:android

App頁面從全屏模式切換到分屏模式,會經歷銷燬後重建的過程,因此它的Activity生命週期會從oncreat()從新走一遍。app

一、禁用分屏模式

通常狀況下,App默認都容許分屏模式。但有的開發者認爲本身的App只有在全屏狀態下才能正常使用,要是被分屏的話用起來會很難受,這時候就得對該App禁用分屏模式。具體操做是在AndroidManifest.xml的application節點添加屬性android:resizeableActivity="false",表示應用頁面不接受分屏;如此一來,即便用戶開啓了分屏模式,切換到該應用時仍會強制回到全屏模式。測試

二、分屏切換時Activity的生命週期

App頁面從全屏模式切換到分屏模式,它的Activity生命週期會經歷銷燬後重建的過程,若是開發者想保持App頁面在分屏前的模樣,則需給該頁面的activity節點加上如下的屬性描述 android:configChanges="screenLayout|orientation"spa

三、分屏在視頻播放時的注意事項

對於視頻播放頁面,須要在它的activity節點加上以下屬性描述,android:configChanges="screenLayout|orientation"
對於視頻播放頁面,建議Activity代碼不在onPause方法中暫停播放視頻,而應當在onStop方法中暫停播放,並在onStart方法中恢復播放視頻,以免無謂的資源浪費
視頻

四、獲取分屏模式的狀態及狀態切換的監聽

App運行過程當中,若想獲知當前是否處於分屏模式,則可調用isInMultiWindowMode方法,該方法返回true表示處於分屏模式,返回false表示處於全屏模式。
每當進入多窗口,或者退出多窗口的時候,應用會觸發Activity頁面的onMultiWindowModeChanged方法。經過重載該方法,開發者能夠即時收到分屏與全屏的切換通知。
xml

相關文章
相關標籤/搜索