0

私のAndroidアプリでは、サーバーが応答を受け取るように要求を送信する必要があります。アプリケーションは正常に動作し、いくつかのテストを行っているときに次の問題が見つかりました。

WIFI が OFF で、モバイル (3G) 接続が利用できると考えてください。したがって、ボタンを押してリクエストをサーバーに送信した直後にWIFIのスイッチを入れると、アプリケーションは次のコードの行から実行を停止しますresCode = httpConn.getResponseCode();。このコードは別のスレッドで実行され、Handler クラスを使用します。

ボタンを押すと(リクエストを送信する)、モバイル(3G)インターネットしかなく、それ(モバイルインターネット)で処理しようとするためだと思います。しかし、処理中に WIFI をオンにすると、WIFI の優先度が最も高く、競合が発生するため、WIFI で処理しようとしている可能性があります。

誰かがこの競合を防ぐ方法について何か考えを持っていますか?

編集します。................................................................... .....

InputStream in = null; 
int resCode = -1; 

     try 
     {                                                                                             
        URL url = new URL(urlStr.replace(" ", "%20"));                                             
        URLConnection urlConn = url.openConnection();                                             
        HttpURLConnection httpConn = (HttpURLConnection)urlConn;                                  
        httpConn.setAllowUserInteraction(false);                                                   
        httpConn.setInstanceFollowRedirects(true);                                                
        httpConn.setRequestMethod("GET");                                                           
        httpConn.connect(); 
        httpConn.setConnectTimeout(5500);        Log.v("State", "before get response code");                                                            
 /*->>*/ resCode = httpConn.getResponseCode();    Log.v("State", "After get response code");                                                            
        in = (resCode == HttpURLConnection.HTTP_OK) ? httpConn.getInputStream() : in;              

    } 
    catch (MalformedURLException e) 
    {
        e.printStackTrace();                                                                              
    }
    catch (IOException e) 
    {
        e.printStackTrace();                                                                               
    }   

この場合、正常に実行される最後の行はhttpConn.setConnectTimeout(5500);、そこから実行を停止する....

実行されますが、Logcat では実行され"before get response code"ません...."before get response code"

それでも例外はありません...チェックしました...

4

0 に答える 0