2014-07-06 41 views
0

Android開發的新功能here.I'm目前正在製作一個應用程序,其中當方向更改時。我想在我的LogCat中的消息。爲此,我在MainActivity中創建了onConfigurationChanged(Configuration newConfig)方法,但在運行該程序時未調用該方法。Android onConfigurationChanged()在Android中的方向程序期間未被調用

基本上,我想停止我的活動從設備方向更改重新啓動。要做到這一點,我已經修改了活動清單文件: 我用

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

ON logcat的我越來越文字如下:

Emulator without GPU emulation detected. 

該應用可以做的工作太多了其主線。

我已經找到了解決方案,通過谷歌在其上面targetSdkVersion「17」我們use--

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()方法不會被調用。

有誰知道爲什麼會發生這種情況?

+0

您可以添加Log.e()語句作爲'onConfigurationChanged()的第一行',以確認該線程不進入在所有。也可以嘗試爲onConfigurationChanged()添加'@ Override'行,以確保'onConfigurationChanged()'的簽名是正確的。如果簽名中出現錯誤,您的IDE編輯器將顯示錯誤。 – faizal

+0

你使用'setRequestedOrientation()'?請參閱http://stackoverflow.com/a/6109206/2105986。 – faizal

回答

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> 
相關問題