2011-07-08 15 views
0

問題の説明:バックボタン(Wifi状態)を押した後のアプリの問題

マイアプリにメインウィンドウがあります。ボタンをクリックすると、Wi-Fiまたは3Gに接続されていることを確認します。そうでなければ、Wi-Fiを有効にするダイアログがポップアップします。 無線LANがオンで、ボタンをクリックすると新しい画面が表示されます。あなたが戻ってボタンを押したときに、無線LANを無効にして、もう一度そのボタンをクリックし、それが再び無線LANを求めていないと画面が無線LANなしで現れる....

私が持っているボタンの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

2番目の画面を呼び出す前にWiFiをチェックしてください。 – Asahi

+0

thats私は何をする、私はwifiを確認する場合は、私は画面を呼び出すアニメーションを設定します – Yuval

+0

何かが欠落している必要があります。どこで2番目の画面を呼び出しますか? – Asahi

答えて

0

networkの値を更新してから、2番目の画面を呼び出すかどうかを決定してください。次のようなものがあります:

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

ありがとう!問題を解決しました。 – Yuval

0

代わりに2番目の画面でWiFiをチェックしてみませんか?それがない場合は、またはをホーム画面に戻すように依頼してください。

+0

ユーザーが何かできるようにするには、2番目の画面にWi-Fiが有効になっている必要があるため、少し問題があります。しかし、とにかく問題を避けていることは...なぜこれをやっているのですか? – Yuval

+0

ああ、今何を意味しているのか分かります。 'network'の価値はどこから来ていますか? WiFiを無効にすると、その値がfalseに戻っているかどうかを確認する必要があります。その値はあなたの 'askForWifi()'メソッドでのみ変更されていますか? – dmon