1

我已在onRetainNonConfigurationInstance()上實現了一個Activity來處理android屏幕方向。這裏是代碼:Android:onRetainNonConfigurationInstance未調用屏幕方向更改

@Override 
    public Object onRetainNonConfigurationInstance() { 
    Log.d("[DEBUG]", "onRetainNonConfigurationInstance : " 
     + this.getClass().getName()); 
    MyState state = new MyState(); 

    return state; 
    } 

然後,我在Android設備上安裝了應用程序。下面是配置:

Device : Samsung Nexus S 
Android version : 4.0.4 
Kernel version : [email protected] #1 

當我通過改變屏幕的方向調試手機上的應用程序,我onRetainNonConfigurationInstance()方法沒有被調用。

即使很奇怪,我在onCreate()我的Activity中添加了一條日誌行。根據文檔,Android應該在屏幕方向發生時重新創建活動。所以,我有類似如下:)

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mylist); 
    Log.d(Constants.LOG_TAG, "Oncreate : " + this.getClass().getName()); 
} 

但在這裏,的onCreate(方法不叫當我改變設備上的屏幕方向。

你是否已經遇到過這個問題?

在文檔中,他們也說這個方法已被棄用,而我應該使用與片段相關的東西等。這可能是我沒有調用方法的原因嗎?

其實,我實施爲2.3.3到3.0設備,但我試驗裝置是4.0.4:它可以是什麼問題?我認爲Android OS版本之間存在某種向後兼容性。

在此先感謝,

+0

請分享您的清單文件。 – AndroDev 2012-04-11 12:02:41

回答

2

你可能在爲活動的清單文件,其中says你會處理的方向改變自己,因此onCreate方法不叫申報orientation一個android:configChanges