在Android的Orientation程序中没有调用Android onConfigurationChanged()

时间:2014-07-06 09:03:04

标签: android

这里是Android开发的新手。我正在制作一个应用程序,当Orientation改变时。我想在我的LogCat中使用该消息。为此,我在MainActivity中创建了onConfigurationChanged(Configuration newConfig)方法,但是在运行程序时没有调用它。

基本上,我想停止我的Activity在设备方向更改时重新启动。为此,我修改了清单文件中的活动:     我用了

android:configChanges="orientation|screenSize"  
android:minSdkVersion="8"
android:targetSdkVersion="17" 

ON LogCat我得到的文字如下:

Emulator without GPU emulation detected.

应用程序可能在其主线程上做了太多工作。

我已经通过Google找到了一个解决方案,其中我们使用了上面的targetSdkVersion“17” -

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|layoutDirection"

它也无效。

任何人都可以帮助我吗?

这是我的MainActivity:

       package com.example.orientation;
        import android.app.Activity;
        import android.content.res.Configuration;
        import android.os.Bundle;
        import android.util.Log;
        import android.view.Menu;
        import android.view.MenuItem;
           public class MainActivity extends Activity {
           protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);

            }


           public void onConfigurationChanged(Configuration newConfig) {

            super.onConfigurationChanged(newConfig);
             Configuration c = getResources().getConfiguration();

                Log.e("Config",""+c);
             if (c.orientation == Configuration.ORIENTATION_PORTRAIT) 
               {
                    // portrait

                   Log.e("On Config Change","portrait");

                  } 
                else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) 
                 {
                    // landscape
                    Log.e("On Config Change","LANDSCAPE");

                  }

               }

             }

但是,当方向改变时,程序正在运行,但是没有调用onConfigurationChanged()方法。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

完全相同的代码对我有用。

这是我的活动标签在清单中的样子:

    <activity
        android:name="com.example.tempproject.MainActivity"
        android:configChanges="screenSize|keyboardHidden|orientation"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>