Проблема в приложении после нажатия кнопки назад (состояние Wi-Fi) - PullRequest
0 голосов
/ 08 июля 2011

Описание проблемы:

мое приложение имеет главное окно. когда вы нажимаете кнопку, убедитесь, что вы подключены к Wi-Fi или 3G, если нет, появляется диалоговое окно, которое включает Wi-Fi. Когда Wi-Fi включен и кнопка нажата, появляется новый экран. когда вы нажимаете кнопку «Назад», отключите Wi-Fi и снова нажмите эту кнопку, он больше не запрашивает Wi-Fi, и экран отображается без Wi-Fi ....

В случае нажатия кнопки у меня есть:

 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 голосов
/ 08 июля 2011

Обязательно обновите значение network, прежде чем принимать решение, вызывать ли второй экран.Что-то вроде:

askForWiFi();
if(network){
   invoke...
}else{
   go to settings
}
0 голосов
/ 08 июля 2011

Почему бы вам не проверить WiFi на втором экране?Если его там нет, попросите их включить его там или и отправить их обратно на домашний экран.

...