網頁

2012年9月27日 星期四

Android小抄_旋轉螢幕不觸發OnCreate事件

在開發Android的App時,我們會將許多初始化的內容寫在OnCreate事件中,平常測試的時候不會發生問題,但當我們稍微旋轉一下螢幕,會發現很多很多的問題都發生了。

原因是當螢幕方向改變時,Android會重新觸發OnCreate事件,會造成初始化的程式碼重新跑一次,所以有時候我們會希望旋轉螢幕時,是不是可以不要觸發OnCreate事件。

方法:

1. 於AndroidManifest.xml中,在activity的標籤內增加android:configChanges="orientation"屬性。
<activity android:name=".OlaArcGISActivity" android:label="@string/app_name" android:configChanges="orientation" android:windowSoftInputMode="adjustPan"> </activity>

2. 複寫onConfigurationChanged方法

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.v("ola_log","landscape"); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ Log.v("ola_log","portrait"); } }

沒有留言:

張貼留言