開發Android時的那些筆記...!!
Android螢幕轉向通常會重新oncreate一次
這在沒資料的時候還好,有資料的時候就要每次轉向都得重新設定一次
有時候還是挺惱人的。其實只要在<activity>裡加上一個參數,
下次旋轉就不會整個都destory掉,資料當然也就不用重新設定拉。
*****************************
只要加上下面的屬性在AndroidManifest.xml <activity>裡:
android:configChanges="keyboard|keyboardHidden|orientation"
例如:
<activity
android:label="@string/app_name"
android:name=".MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
就完成拉。
排除onStart, onResume, onPause, onStop,
咱門來看看Activity在沒有設定上面屬性時,旋轉的過程:
onCreate //第一次創建Activity
onSaveInstanceState //旋轉螢幕時在這裡儲存狀態
onDestroy //然後銷毀Activity
onCreate //旋轉後重新創建一次Activity
onRestoreInstanceState //將存下來的狀態回復
有設定上面屬性時,旋轉的過程:
onCreate //第一次創建Activity
onConfigurationChanged //旋轉螢幕時觸發
onConfigurationChanged //再一次旋轉螢幕時觸發
當app的port跟land的UI都大不相同時,建議使用第一種設定。
當app的port跟land的UI大同小異(或沒有動態做UI排版),且畫面存有資料時,建議使用第二種設定。