我需要處理Android應用程序中的方向更改。爲此目的,我決定使用OrientationEventListener
便利課。但他的回調方法有一些奇怪的行爲。處理方向變化時的問題
我的應用程序開始在人像模式,然後最終切換到lanscape之一。我有一些自定義代碼在回調onOrientationChanged
方法中執行,它提供了一些額外的UI處理邏輯 - 它有幾個調用findViewById
。 奇怪的是,當從橫向切換回肖像模式onOrientationChanged
回調被稱爲兩次,甚至更糟 - 第二個電話正在處理不好Context
- findViewById
方法開始返回null
。這些電話是從MainThread
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listener = new OrientationListener();
}
@Override
protected void onResume() {
super.onResume();
// enabling listening
listener.enable();
}
@Override
protected void onPause() {
super.onPause();
// disabling listening
listener.disable();
}
權利而作出我複製與虛擬Activity
相同的行爲,而不只是一個帶有定向hadling涉及任何邏輯。 我按按Ctrl + F11 出了什麼問題發起朝向切換從Android 2.2模擬器?
UPD: 內部類實現OrientationEventListener
private class OrientationListener extends OrientationEventListener {
public OrientationL() {
super(getBaseContext());
}
@Override
public void onOrientationChanged(int orientation) {
toString();
}
}
}
請發表您的onOrientationChanged代碼太 – 2010-06-07 08:58:02
你有一個真正的手機上測試時試過這種?我遇到了一些方向變化的問題,只有在模擬器上測試時纔會發生。它與模擬器假定屏幕方向改變有關 - 我也有一個問題,它重新創建應用程序兩次。 – 2010-06-07 10:56:00
可惜的是我沒有獲得真正的手機現在 – nixau 2010-06-07 11:07:00