我有两个活动 AB,用户可以通过将手机从纵向旋转到横向来在它们之间切换
我重写了 OnConfigurationChanged 并像这样开始新的活动:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_USER || newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE || newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)
{
final TabGroupActivity tabGroupActivity = (TabGroupActivity) this.getParent();
final Intent arIntent = new Intent(tabGroupActivity, ARActivity.class);
tabGroupActivity.startActivity(arIntent);
}
}
它第一次运行良好,但第二次,第三次都可以等等。它每两次运行一次
每次失败时,活动 A 都会旋转到横向,我注意到我的覆盖 OnConfigurationChanged 没有被调用。
有什么建议么 ?
这是 Activity B 中 ConfigurationChanged 的代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG,"onConfigurationChanged orientation : " + newConfig.orientation);
if (!mProgressDialog.isShowing() && (newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT|| newConfig.orientation==ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT))
{
mOrientationTimer.cancel();
this.finish();
}
}