0

问题描述:

我的应用程序有一个主窗口。当您单击一个按钮时,它确保您连接到 wifi 或 3g,如果没有,它会弹出一个启用 wifi 的对话框。当wifi打开并单击按钮时,会出现一个新屏幕。当您点击后退按钮时,禁用 wifi 并再次单击该按钮它不会再次要求 wifi 并且屏幕显示没有 wifi....

在按钮的 Click 事件中,我有:

 if(chosedOption == curOption)
            {
                if(network)
                {
                    target = CurrencyMain.class;
                    go.setAnimation(a);
                }
                else
                    askForWifi();
            }

在 askForWifi 方法中,我有:

public void askForWifi()
 {
    is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();
    isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
    network = is3g||isWifi;
     if(!network)
        {    
         AlertDialog alertbox = new AlertDialog.Builder(MainWindowYuval.this).create();
         alertbox.setMessage("Enable wifi of 3g!");
         alertbox.setButton("cancel", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    dialog.dismiss();                      
                }  
            });  

         alertbox.setButton2("Turn wifi on", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {
                    WifiManager wifiManager = (WifiManager) MainWindowYuval.this.getSystemService(Context.WIFI_SERVICE);
                    wifiManager.setWifiEnabled(true);                     
                }  
            });

         alertbox.show();

        }
        is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();
        isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
        network = is3g||isWifi;

 }

我能做些什么来解决这个问题?

4

2 回答 2

0

为什么不在第二个屏幕中检查 WiFi?如果它不存在,请让他们在那里启用它将它们发送回主屏幕。

于 2011-07-08T12:02:58.213 回答
0

network在决定是否调用第二个屏幕之前,请确保更新值。就像是:

askForWiFi();
if(network){
   invoke...
}else{
   go to settings
}
于 2011-07-08T12:26:48.003 回答