2012-11-20 22 views
0

我已經看了許多其他職位的這個問題,最常見的解決方案沒有得到所謂的是要確保你有你的清單如下:onConfigurationChanged()時明顯有明顯的方向標記

<activity android:name=".activities.myActivity" 
     android:configChanges="orientation|keyboard|keyboardHidden|screenSize"> 

此子已經在我的表現,我不強迫我的活動」的方向爲橫向或縱向尚未onConfigurationChanged(...)沒有被調用。

我onConfigureationChanged(...)函數如下,我不接受logcat的輸出:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 

    Logger.e(getClass().getSimpleName(), "onConfigurationChanged()"); 

    super.onConfigurationChanged(newConfig); 
} 

我也驗證了該活動不會通過標準的生命週期中加入伐木工人去在onCreate()和onPause()中。

+0

一個問題,是'Logger'的包裝類'Log'的是Android使用記錄的消息? – Wenhui

+0

對不起應該剝離下來。只是Log的一個包裝,以便它可以關閉發佈版本 –

回答

0

OnConfigurationChanged將被稱爲只有當在AndroidManifest.xml更改指定的配置。例如,此方法將在屏幕更改後調用。如果我理解,你的應用程序的配置不會改變。

Android documentation

例如,下面的清單代碼聲明,說明如何處理屏幕方向變化和鍵盤可用性的變化的活動:

<activity android:name=".MyActivity" 
     android:configChanges="orientation|keyboardHidden" 
     android:label="@string/app_name"> 

現在,當這些配置的一個變化, MyActivity不會重新啓動。相反,MyActivity接收到對onConfigurationChanged()的調用。此方法傳遞一個Configuration對象,該對象指定新的設備配置。

+0

這都是真的 - 但我的活動沒有被重新啓動,也沒有調用onConfigurationChanged。這是很奇怪的,因爲它沒有做什麼文件說,它應該 –

+0

但是,當你旋轉你的設備發生這種情況甚至?這項活動還沒有經歷標準的生命週期? –

+0

這是正確的 –