我需要处理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