Ich habe onRetainNonConfigurationInstance() auf einer meiner Aktivität implementiert, Android-Bildschirmausrichtung zu behandeln. Hier ist der Code:Android: onRetainNonConfigurationInstance wird nicht aufgerufen Bildschirmausrichtung ändern
@Override
public Object onRetainNonConfigurationInstance() {
Log.d("[DEBUG]", "onRetainNonConfigurationInstance : "
+ this.getClass().getName());
MyState state = new MyState();
return state;
}
Ich habe dann die App auf einem Android-Gerät installiert. Hier ist die Konfiguration:
Device : Samsung Nexus S
Android version : 4.0.4
Kernel version : [email protected] #1
Wenn ich die App auf dem Telefon zu debuggen, indem Bildschirmausrichtung, meine onRetainNonConfigurationInstance() Methode wird nicht aufgerufen.
Sogar komisch, ich habe eine Protokollzeile in der onCreate() Methode meiner Aktivität hinzugefügt. Laut der Dokumentation soll Android die Aktivität bei der Bildschirmausrichtung neu erstellen. So habe ich etwas wie folgt aus:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylist);
Log.d(Constants.LOG_TAG, "Oncreate : " + this.getClass().getName());
}
Aber hier, das onCreate() Methode nicht aufgerufen, wenn ich die Bildschirmausrichtung auf dem Gerät ändern.
Haben Sie dieses Problem bereits erfahren?
In der Dokumentation sagen sie auch, dass diese Methode veraltet ist und dass ich stattdessen etwas verwenden sollte, das mit Fragmenten verwandt ist. Kann es der Grund sein, warum ich die Methode nicht genannt habe?
tatsächlich, ich bin die Umsetzung für 2.3.3 bis 3.0 Geräte aber mein Testgerät ist 4.0.4: Kann es das Problem sein? Ich dachte, dass es eine gewisse Rückwärtskompatibilität zwischen Android OS-Versionen gibt.
Vielen Dank im Voraus,
Bitte teilen Sie Ihre Manifest-Datei. – AndroDev