按下后退按钮后应用程序出现问题(Wifi状态)

时间:2011-07-08 11:54:15

标签: java android methods wifi android-wifi

问题描述:

我的应用有一个主窗口。当你点击一个按钮它确保你连接到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;

 }

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

确定在决定是否调用第二个屏幕之前更新network的值。类似的东西:

askForWiFi();
if(network){
   invoke...
}else{
   go to settings
}