0

「HttpClient」と「URLConnection」を使用jsonしてサーバーからデータを取得しましたが、アプリの起動時に正常に動作しています。問題は、携帯電話を操作せずに約 20 分以上そこに置いたままにしておくと、アプリを起動すると、「UnknownHostException」が表示されlogcat、検証データの応答がないことです。今回は、通知バーの wifi アイコンがワイヤレス接続の良好な品質を示しています。

だから私はアプリを閉じて、何度も再起動しましたが、大丈夫です。

私はこれを解決する方法を知るためにたくさんグーグルで検索しましたが、失敗しました。私はこれについて本当に混乱しています。私はこれを手に入れました - http://www.net.princeton.edu/android/android-stops-renewing-lease-keeps-using-IP-address-11236.html、このバグによってトリガーされたかどうかはわかりません.

「コードでwifiをオフにしてオンにする」など、インターネットから多くの方法を試しましたが、すべて機能しませんでした。これが特定の電話またはAndroidシステムのバグなのか、それとも私のコードに何か問題があるのか​​ 疑問に思っているだけです。アドバイスをいただければ幸いです。

2012.12.10 更新

2秒ごとにもう一度電話をかけようとしましたが、電話がスリープから復帰するのを合計5回待ちましたが、電話で正常に動作しています。

// all these codes are running on a worker thread (not main thread)
int timeout = 5;

if (json == null) {
  do {
     Thread.sleep (2000);
     // call it agina...
     if (json != null) {
        break;
     }
  } while (--timeout >= 0);

}

if (json == null) {
    // do something if it's not working at last
}
4

1 に答える 1

0

この問題を解決する最善の方法は、WakeLock を使用することです。この Android マニフェスト ファイルを使用すると、アプリケーションがデバイス上に留まるようになるため、このような問題が発生することはありません。

<uses-permission android:name="android.permission.WAKE_LOCK"/>

于 2012-12-05T04:13:54.713 に答える