每次在android Kitkat中,Orientation都会调用onCreate()方法

时间:2014-01-27 10:35:43

标签: android orientation screen-orientation android-orientation android-4.4-kitkat

我已经知道在Android中改变方向时不再调用OnCreate方法。

以下是代码。

<activity android:name=".MyActivity" 
      android:configChanges="orientation|keyboardHidden" /> 

但它不适用于我的谷歌Nexus 5.因为它有android kitkat操作系统。三星Mega android 4.2在哪里工作。

那么android kitkat在方向更改时停止调用OnCreate()的代码是什么?

我还使用下面的代码

修正了方向
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme" >

但该代码也无效。

(编辑)要修改方向,我需要在Activity标记中添加android:screenOrientation="portrait"代码。谢谢@RupaliG

谢谢

2 个答案:

答案 0 :(得分:1)

在onCreate中使用标记检查。在初始化/声明时使flag = true 在你的清单文件中添加android:configChanges =“orientation”

在您的Java文件中覆盖 onConfigurationChanged 方法并将该标志设为false。

执行此操作后,将调用onCreate,但中的代码如果将不会被调用。 将您的代码移到 if 条件中。

尝试使用它。

static boolean flag = true;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    if(!flag)
        return;
}    
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    Log.d("ONCONFIGCHANGE", "CALLED" );
    flag = false;
    super.onConfigurationChanged(newConfig);
}

答案 1 :(得分:0)

尝试2.3.3+中的这个:

android:configChanges="orientation|keyboardHidden|screenSize"