2011年4月8日 星期五

Rotation問題

Rotation問題
問題:
在Android的系統裡,當Activity在執行的狀態下,旋轉螢幕,系統會將Activity關閉,重新啟動。當這種情形發生時,有可能會造成目前狀態下的資料遺失。

解決方案:
目前提供二種解決方法:
1. 當旋轉事件發生時,利用SharedPreferences物件將參數儲存,然後在重新啟動時再將參數重新導入。

// 偵測旋轉的動作
    // 在AndroidiManifest.xml的activity裡加入下面程式碼
    AndroidiManifest.xml
    <activity
        ....
        android:configChanges="orientation|keyboardHidden"
        .....
    </activity>

    Xxx.java
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (this.getResources().getConfiguration().orientation ==
            Configuration.ORIENTATION_LANDSCAPE)  {
            // 旋轉方向變為landscape時執行
        }
        else if (this.getResources().getConfiguration().orientation ==
            Configuration.ORIENTATION_PORTRAIT) {
            // 旋轉方向變為portrait時執行
        }
    }

2. 將AP的畫面鎖定在同一方向


    在AndroidiManifest.xml的activity下加入
    AndroidiManifest.xml
    <activity
        ....
        android:screenOrientation="portrait"
        .....
    </activity>

沒有留言:

張貼留言