Java 控件请求TabChildActivity内部的定向

Java 控件请求TabChildActivity内部的定向,java,android,exception,orientation,android-fragments,Java,Android,Exception,Orientation,Android Fragments,我有一个TabActivity,它主持了几个活动。在1活动中,我必须将方向设置为横向(在Android 2.1上,这是一个在纵向模式下无法工作的摄像头活动)。如果我调用setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向)

我有一个TabActivity,它主持了几个活动。在1活动中,我必须将方向设置为
横向
(在Android 2.1上,这是一个在纵向模式下无法工作的摄像头活动)。如果我调用
setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向)
//DefaultGroup is an FragmentActivity
public class ChildActivity extends DefaultGroup{

TabActivity mParent;
int previosOrientation;


public void onResume(){
    super.onResume();
    if (getParent() instanceof TabActivity){
        mParent = (TabActivity)getParent();
        previosOrientation = mParent.getRequestedOrientation();
        mParent.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
        //request to DefaultGroup to set CameraFragment as ContentView
        // 0=id, null= Bundle, false=addToBackStack
    startFragment(0, null, false);
}


public void onPause(){
    super.onPause();
    if (mParent != null){
        mParent.setRequestedOrientation(previosOrientation);
    }
}

@Override
public DefaultFragment getFragment(int fragment, Bundle args) {
    return new CameraFragment();
}

}
如果创建了活动,则该方法效果良好。单击另一个选项卡按钮后,方向将设置回以前的方向。但如果我回到那个选项卡,我会得到一个forceClose,其中包含这个LogCat Stacktrace:

01-27 16:19:21.101:E/AndroidRuntime(30134):java.lang.RuntimeException:无法恢复活动{de.my.namespace.ChildActivity}:java.lang.IllegalStateException:无法在onSaveInstanceState之后执行此操作 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.ActivityThread.performResumeActivity(ActivityThread.java:2444) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:178) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:329) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.widget.TabHost.setCurrentTab(TabHost.java:346) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:540) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.view.view.performClick(view.java:3511) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.view.view$PerformClick.run(view.java:14105) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.os.Handler.handleCallback(Handler.java:605)上 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.os.Handler.dispatchMessage(Handler.java:92)上 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.os.Looper.loop(Looper.java:137) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于android.app.ActivityThread.main(ActivityThread.java:4424) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于java.lang.reflect.Method.Invokenactive(本机方法) 01-27 16:19:21.101:E/AndroidRuntime(30134):在java.lang.reflect.Method.invoke(Method.java:511) 01-27 16:19:21.101:E/AndroidRuntime(30134):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 01-27 16:19:21.101:E/AndroidRuntime(30134):在dalvik.system.NativeStart.main(本机方法) 01-27 16:19:21.101:E/AndroidRuntime(30134):原因:java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1242) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1253) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.support.v4.app.BackStackRecord.committernel(BackStackRecord.java:535) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:519) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于de.my.namespace.activity.DefaultGroup.addFragment(DefaultGroup.java:162) 01-27 16:19:21.101:E/AndroidRuntime(30134):位于de.my.namespace.activity.DefaultGroup.startFragment(DefaultGroup.java:145) 01-27 16:19:21.101:E/AndroidRuntime(30134):在de.my.namespace.activity.ChildaActivity.onResume(AugmentedRealityActivity.java:26) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1154)上 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.Activity.performResume(Activity.java:4539) 01-27 16:19:21.101:E/AndroidRuntime(30134):在android.app.ActivityThread.performResumeActivity(ActivityThread.java:2434) 01-27 16:19:21.101:E/AndroidRuntime(30134):。。。还有17个

因此,我的问题是:如果我离开一个特殊的孩子,我如何在设置这些设置的同时,在一个特殊的孩子体内强制我的孩子/选项卡活动的方向