Android中FragmentActivity中的DialogFragmentState丢失

Android中FragmentActivity中的DialogFragmentState丢失,android,android-fragments,android-fragmentactivity,android-dialogfragment,Android,Android Fragments,Android Fragmentactivity,Android Dialogfragment,我有一个FragmentActivity,这个类被子类化为各种活动,我在各种选项卡上显示这些活动,用户可以在这些选项卡之间切换。我也有一个服务在运行。在暂停状态下,我的应用程序继续工作,如果它连接到一个可编程设备,它将显示一个对话框。不是我得到的错误是非法状态异常。当FragmentActivity类调用该类时,会扩展DialogFragment **是否有办法在暂停状态下处理dialogfragment,并使其在设备处于暂停状态时不显示对话框?如果是这样的话,应该在FragementActiv

我有一个FragmentActivity,这个类被子类化为各种活动,我在各种选项卡上显示这些活动,用户可以在这些选项卡之间切换。我也有一个服务在运行。在暂停状态下,我的应用程序继续工作,如果它连接到一个可编程设备,它将显示一个对话框。不是我得到的错误是非法状态异常。当FragmentActivity类调用该类时,会扩展DialogFragment

**是否有办法在暂停状态下处理dialogfragment,并使其在设备处于暂停状态时不显示对话框?如果是这样的话,应该在FragementActivities的pause中完成还是在base fragement的onPause中完成***

我将对话框显示为

             protected void showDialog(int id, String title, String message) {
             MyDialog confirmationDialog = MyDialog .newInstance(id,
            title, message);
              confirmationDialog.show(this.getFragmentManager(), null);
             }
对话框类如下所示

        MyDialog extends DialogFragment implements OnClickListener{

      private int id = -1;

private String mDialogtitle;

private String mDialogMessage;

public static MyDialog newInstance(int id, String dialogTitle, String dialogMessage) {

    MyDialog mDialog = new MyDialog();
    Bundle bundle = new Bundle();
    bundle.putString(MyApplication.getAppContext().getString(R.string.message), dialogMessage);
    bundle.putString(MyApplication.getAppContext().getString(R.string.title), dialogTitle);
    bundle.putInt(MyApplication.getAppContext().getString(R.string.dialogid), id);
    mDialog .setArguments(bundle);

    return mDialog ;
}

public AlertDialog onCreateDialog(Bundle savedInstanceState) {

    mDialogtitle = getArguments().getString(getString(R.string.title));

    mDialogMessage = getArguments().getString(getString(R.string.message));

    id = getArguments().getInt(getString(R.string.dialogid));

    switch (id) {

    case DialogConstants.GENERAL_DIALOG_WITH_OK:
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle(mDialogtitle);
        builder.setMessage(mDialogMessage)
        .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dismiss();
            }
        });
        return builder.create();

            default:
        return null;
    }
}

@Override
public void onClick(View v) {

}
}

编辑:日志 04-06 11:26:42.747:E/AndroidRuntime16092:致命异常:主

04-06 11:26:42.747:E/AndroidRuntime16092:java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.FragmentManagerImpl.checkStateLossFragmentManager.java:1323 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.FragmentManagerImpl.enqueueActionFragmentManager.java:1341 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.backbackbackRecord.committernernalbackstackRecord.java:597 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.BackStackRecord.commitBackStackRecord.java:575 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.DialogFragment.showDialogFragment.java:230 04-06 11:26:42.747:E/AndroidRuntime16092:at MyFragementActivity.showDialogMyFragementActivity.java:593 04-06 11:26:42.747:E/AndroidRuntime16092:at MySubClass$5.handleMessageMySubClass.java:1974 04-06 11:26:42.747:E/AndroidRuntime16092:at android.os.Handler.dispatchMessageHandler.java:102 04-06 11:26:42.747:E/AndroidRuntime16092:at android.os.Looper.Looper.java:146 04-06 11:26:42.747:E/AndroidRuntime16092:at android.app.ActivityThread.mainActivityThread.java:5635 04-06 11:26:42.747:E/AndroidRuntime16092:at java.lang.reflect.Method.Invokenactive Method 04-06 11:26:42.747:E/AndroidRuntime16092:at java.lang.reflect.Method.invokeMethod.java:515 04-06 11:26:42.747:E/AndroidRuntime16092:com.android.internal.os.ZygoteInit$methodAndArgscaler.runZygoteInit.java:1291 04-06 11:26:42.747:E/AndroidRuntime16092:com.android.internal.os.ZygoteInit.mainZygoteInit.java:1107 04-06 11:26:42.747:E/AndroidRuntime16092:at dalvik.system.NativeStart.main本地方法

编辑:来自基本活动的调用


请发布您的日志Cat。您在哪里调用此方法showDialogint id、字符串标题、字符串消息?来自子类MySubClass之一
   showDialog("OK",
                        getString(R.string.app_name),
                        "Device Connected.");