Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保持对话高于活动_Android_User Interface_Android Activity - Fatal编程技术网

Android 保持对话高于活动

Android 保持对话高于活动,android,user-interface,android-activity,Android,User Interface,Android Activity,我有一个依赖于连接的应用程序,它有许多活动。每当连接断开时,我需要显示一个进度重新连接对话框,并将其保持到连接恢复或用户退出,无论运行的活动如何。我使用此方法拦截BaseActivity中的连接失败事件,BaseActivity是我所有活动的父级: public void xmppConnectionClosed() { connectionError = true; onScreenActivity.runOnUiThread(new Runna

我有一个依赖于连接的应用程序,它有许多活动。每当连接断开时,我需要显示一个进度重新连接对话框,并将其保持到连接恢复或用户退出,无论运行的活动如何。我使用此方法拦截BaseActivity中的连接失败事件,BaseActivity是我所有活动的父级:

public void xmppConnectionClosed() {
            connectionError = true;
            onScreenActivity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    initiateReconnectionDialog(onScreenActivity); //onScreenActivity is singlton represent the current activity 
                    reconnectionDialog.setMessage(onScreenActivity
                            .getString(R.string.reconnectionDialogReconnecting));
                    reconnectionDialog
                            .setStatus(ReconnectionStatus.RECONNECTING);
                    // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
                        reconnectionDialog.show();

                }

            });

        }
它的onCreate

protected void onCreate(android.os.Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (connectionError) {
            initiateReconnectionDialog(this);
            reconnectionDialog.show();
        }
    }
现在的问题是,如果我有活动A,在旋转设备时启动活动B,则会调用活动A的onCreate,如果我试图显示对话框,则会抛出一个异常,表明它不是前台活动。
你知道如何处理这种情况吗?

这听起来像是一个必须从后台服务中打开的对话框。必须如此,因为您不在乎活动是否正在运行。该活动必须启动服务并在后台运行。

这听起来像是一个必须从后台服务打开的对话框。必须如此,因为您不在乎活动是否正在运行。活动必须启动服务并在后台运行。

您可以在OnRetainonConfiguration实例中关闭该对话框。您应该能够在活动的on create then中重新创建该对话框。

您可以在OnRetainonConfiguration实例中取消该对话框。您应该能够在活动的“创建时”中重新创建对话框。

这听起来不错,但旋转设备时显示对话框会取代所有视图,因此在方向更改时不会更改。请阅读您的文档。因为后台服务正在启动一个对话框,所以它不需要活动,也不受该活动方向的影响。这听起来不错,但是当旋转设备时显示对话框会取代所有视图,因此,当方向改变时,不会改变对话框。请阅读您的文档。因为后台服务正在启动对话框,所以它不需要活动,也不受活动方向的影响。