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 回答