安卓 |如何在显示下一个对话之前关闭上一个对话?

问题描述

我有针对不同条件的多个对话框。当我为一种情况显示对话时,然后我尝试为另一种情况显示另一种对话。它与前一个重叠。

特定场景

我有两个对话。一种用于 wifi 未激活的情况。另一种是当wifi处于活动状态时。假设当我启动应用程序时,wifi 未处于活动状态。所以,它显示了一个对话。然后我打开了wifi。它展示了另一个对话。但是,它与前一个重叠。在下面的屏幕截图中,通过查看对话框的阴影可以清楚地看到。左一是当wifi打开时。然后我关闭了wifi并再次打开。而这种重叠发生了。

屏幕截图

Screenshot

Java 代码

 private BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context,Intent intent) {
            int wifiStateExtra = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_UNKNOWN);
            switch (wifiStateExtra) {


                case WifiManager.WIFI_STATE_ENABLED:
                    //WIFI ENABLED

                    {
                    info = wifiManager.getConnectionInfo();
                    if (!info.getSSID().trim().equals(ssid)) {
                        title = "Connect to Devil";
                        msg = "In order to work with system you need to be connected with Devil";

                        builder.setTitle(title);
                        builder.setMessage(msg);
                        builder.setPositiveButton("OK",(dialog,which) -> startActivity(WiFiIntent));
                        builder.setNegativeButton("Close App",((dialog,which) -> finishAffinity()));
                        alertDialog = builder.create();
                        alertDialog.show();
                        alertDialog.setCancelable(false);

                    }

                    break;
                }


                case WifiManager.WIFI_STATE_DISABLED:
                    //WIFI DISABLED
                {
                    title = "Enable WiFi";
                    msg = "Please enable wifi and connect to Devil";
                    builder.setTitle(title);
                    builder.setMessage(msg);
                    builder.setPositiveButton("OK",which) -> startActivity(WiFiIntent));
                    builder.setNegativeButton("Close App",which) -> finishAffinity()));
                    alertDialog = builder.create();
                    alertDialog.show();
                    alertDialog.setCancelable(false);
                    break;
                }
            }
        }
    };

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)