2011-07-08 46 views
0

問題描述:點擊後退按鈕後的應用程序問題(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; 

} 

我能做些什麼來解決這個問題?

+0

你應該在調用第二個屏幕之前檢查WiFi嗎? – Asahi

+0

這就是我所做的,我檢查WiFi,如果有,我設置動畫,然後調用屏幕 – Yuval

+0

失去了一些東西。你在哪裏調用第二個屏幕? – Asahi

回答

0

確定在決定是否調用第二個屏幕之前更新network的值。例如:

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

謝謝!解決了這個問題。 – Yuval

0

爲什麼不在第二個屏幕上檢查WiFi?如果不在那裏,請讓他們在那裏啓用它將它們發送回主屏幕。

+0

這是一個問題,因爲第二個屏幕必須啓用wifi才能使用戶能夠執行某些操作。但無論如何,這避免了這個問題......爲什麼這樣做呢? – Yuval

+0

啊我明白你的意思了。網絡的價值來自哪裏?您應該嘗試查看一旦禁用WiFi後,該值是否會變回false。在你的'askForWifi()'方法中,該值是否被修改* only *? – dmon