2014-07-06 3 views
0

Новое для Android. Здесь я создаю приложение, в котором, когда меняется Ориентация. Я хочу сообщение в своем LogCat. Для этого я применил метод onConfigurationChanged (Configuration newConfig) в MainActivity, но он не вызывается при запуске программы.Android onConfigurationChanged() не вызывается во время программы ориентации в Android

В принципе, я хочу прекратить свою деятельность после перезапуска при изменении ориентации устройства. Чтобы сделать это, я изменил свою деятельность в файле манифеста: Я использовал

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

ON LogCat Я получаю текст следующим образом:

Emulator without GPU emulation detected. 

Приложение может делать слишком много работы на его основной нить.

я уже нашел решение через Google, в котором выше 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()', чтобы подтвердить, что нить не входит вообще. Также попробуйте добавить строку '@ Override' для' onConfigurationChanged() ', чтобы гарантировать правильность подписи' 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> 
Смежные вопросы