安卓:清空 DNS 缓存

39
我们最近发布了一款安卓应用程序,可以从外部服务器获取信息。上周我们从共享主机迁移到了专用服务器,这一过程很顺利,直到我们开始收到用户报告称出现“找不到服务器”的错误。我们在基于安卓的手机(Droid)上进行了检查,一切都运行良好。绝大多数用户都没有问题,似乎只有一小部分T-Mobile用户运行安卓1.5操作系统(G1,Mytouch 3g)出现了麻烦。我们认为这些都是应用程序的以前用户。
无论如何,我们一直在努力寻找解决方法(类似于ipconfig / flushdns),但一直未能找到。是否有人遇到过类似的情况?谢谢。

http://android.stackexchange.com/questions/12962/how-can-i-flush-the-dns-cache - nelaaro
3个回答

23
您有几个选项:
  • 为您的应用程序发布更新,使用不在任何人缓存中的不同主机名。
  • 同样的操作,但是使用服务器的 IP 地址。
  • 让用户进入 设置 -> 应用程序 -> 网络位置 -> 清除数据。

您可能需要检查最后一步,因为我不能确定这是否是适当的服务。我现在无法测试。祝你好运!


我们本来想避免推出另一个更新,但最终只能使用IP地址并推送更新。谢谢! - user254919

18

0

1
这个回答为什么被投票拉低了三次?它是一个合法的回答,很有可能有效。 - Eduard Luca
我想它被投票否决的原因是因为OP正在寻找一种编程方式来解决问题。也就是说,如果你的应用程序遇到UnknownHostException,采取一些纠正措施然后重试比挂起、崩溃或者说“我很抱歉,戴夫,我不能这样做”更好。 - Jon Shemitz
那么如何通过编程请求手机重启呢?除非系统已经获取了root权限,否则就没有办法与DNS解析进行交互。另一个选择是在应用程序中静态设置服务器的IP地址,并随时更新。但这样做有点违背了使用主机名的初衷。 - Alex Summers
一个软重启就足够了(即 killall zygote)。完全重启 - 更糟的是,取出电池 - 真的在这里什么都没有做到。 - Marc.2377
截至2022年5月,在我的三星Galaxy S10e上,该文章中的用户界面已不再存在。net-internals选项卡显示该功能已被删除。 - enigment

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接