我们最近发布了一个从外部服务器提取信息的Android应用程序.上周,我们从共享主机转移到专用服务器,这一过程顺利进行,直到我们开始收到用户收到服务器未发现错误的投诉.我们查看了基于Android的手机(Droid),一切正常.绝大多数用户都很好,似乎有一小部分运行Android o/s 1.5(g1,mytouch 3g)的t-mobile用户似乎遇到了麻烦.我们相信这些都是该应用程序的所有先前用户.
无论如何,我们一直试图找到一个修复程序(类似于ipconfig/flushdns),但一直无法这样做.有没有人有过类似的经历?谢谢.
我有安卓代码,它使用后台进程定期(例如每小时)连接到Web上的内容源以检查更新的内容.当新用户第一次下载应用程序并运行它时,似乎(这只是一个"目前似乎")在这种首次运行的情况下,因为我们服务器的DNS尚未在设备上缓存,那些第一系列连接因可怕的UnknownHostException而失败:Host未解析.当然,应用程序稍后再次尝试(再次,"看起来像")它一切正常 - 可能是因为操作系统有时间实际解决地址.
所以,我的问题是:(1)其他Android开发人员是否也看到了他们部署的应用程序的这种行为?第一次,一系列"主持人未解决"的问题在以后发挥作用.(2)有没有人有更好的策略来"加热DNS"这么说,以便第一个真正的连接起作用?或者,当您遇到此异常时,您是否只是重新尝试使用一些后退循环?我正在考虑有一个单独的线程试图从我们的服务器获取一个小文本文件,让它只是循环,直到它得到它,并可能(不确定这部分)阻止其他传出网络连接,直到它成功.
无论如何,我已经在Stack Overflow上阅读了各种类似措辞问题的答案,我只是向大家保证
<uses-permission android:name="android.permission.INTERNET" />
在我的清单文件中设置:)