2013年11月22日 星期五

Android 防止螢幕方向更改時 activity執行onCreate()


第一步防止螢幕旋轉,鎖定在portrait方向

Manifest.xml

<activity
...
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
...
>


第二步override onConfigurationChanged(),內容放空

第二步非必需但以下情形要
當你在程式中開啟其它activity然後其它activity有旋轉方向!

例如:
開啟相機,然後onActivityResult()取回圖檔
此時因相機旋轉方向且Android釋放記憶activity 跑了Destroy();
此時取回圖檔時會多跑onCreate()!
所以要override onConfigurationChanged(),防止跑onCreate()!


public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
   // Checks the orientation of the screen
    if(newConfig.orientation ==Configuration.ORIENTATION_LANDSCAPE){
       //Toast.makeText(this,"landscape",Toast.LENGTH_SHORT).show();
    }else if(newConfig.orientation ==Configuration.ORIENTATION_PORTRAIT)     {
       //Toast.makeText(this,"portrait",Toast.LENGTH_SHORT).show();
    }
}

沒有留言:

張貼留言