Android 橫豎屏切換以及橫屏啟動閃退問題

目前一般情況下 在橫豎屏情況下 我們會遇到一些問題 例如橫豎屏顯示ui 比例問題 還有activity重啟問題 今天說三個問題 一是橫豎屏切換 二是 禁止屏幕旋轉(zhuǎn)

說一下屏幕切換時 的activity 生命周期?

onPause()—->onDestroy()—–>onCreate()

先說第一個 橫豎屏切換 一般的套路如下

在manifast.xml 中 給當(dāng)前activity配置 防止activity在屏幕切換時 activity 重建問題

android:configChanges="orientation|keyboardHidden|screenSize"

獲取屏幕方向

int orientation = getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE) {

? ? ? ? ? ? setContentView(R.layout.horizontallayout);? ? ? ? } else if (orientation == Configuration.ORIENTATION_PORTRAIT) {

? ? ? ? ? ? setContentView(R.layout.verticallayout);}

監(jiān)聽屏幕方向 并處理數(shù)據(jù)

@Override public void onConfigurationChanged(Configuration newConfig) {

? ? ? ? ? // 處理你的數(shù)據(jù)? ? ? ? super.onConfigurationChanged(newConfig);

? ? }

二 禁止屏幕旋轉(zhuǎn)?

第一 要先設(shè)置屏幕方向

manifast.xml 設(shè)置給activity屏幕方向

android:screenOrientation="portrait"http:// 設(shè)置豎屏android:configChanges="orientation|keyboardHidden|screenSize"http:// 防止activity 重建

在java 代碼中設(shè)置

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

二者選一即可

第二? 為了防止用戶開啟了屏幕切換權(quán)限 進(jìn)行屏幕監(jiān)聽

@Override? ? public void onConfigurationChanged(Configuration newConfig) {

? ? ? ? ? ? ? // 進(jìn)行數(shù)據(jù)處理? ? ? ? super.onConfigurationChanged(newConfig);

? ? }

第三? 保存數(shù)據(jù) 防止activity 被銷毀重建 進(jìn)行數(shù)據(jù)處理

@Override? ? protected void onSaveInstanceState(Bundle outState) {

? ? ? ? super.onSaveInstanceState(outState);

? ? // 保存數(shù)據(jù)? ? }

或者在onpush 方法中保存

在oncreate() 方法中獲取數(shù)據(jù) 進(jìn)行設(shè)置即可

注意 此處會有一個問題 就是 當(dāng)客戶開啟了屏幕旋轉(zhuǎn)的權(quán)限時 橫屏啟動時可能會出現(xiàn)閃退 情況

先說一下 我們的app 啟動 app 啟動默認(rèn)的豎屏啟動的 但是如果在啟動過程中 app 感應(yīng)到重力發(fā)生變化 activity 就會發(fā)生改變 無論你有沒有設(shè)置方向 而此時就有可能刪除 這是數(shù)據(jù)問題 異常自己捕獲就好了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容