簡體   English   中英

Android java.net.UnknownHostException:主機未解析(策略問題)

[英]Android java.net.UnknownHostException: Host is unresolved (strategy question)

我有安卓代碼,它使用后台進程定期(例如每小時)連接到Web上的內容源以檢查更新的內容。 當新用戶第一次下載應用程序並運行它時,似乎(這只是“目前似乎”)在這種首次運行的情況下,因為我們的服務器的DNS尚未在設備上緩存,那些第一系列連接因可怕的UnknownHostException而失敗:主機未解析。當然,應用程序稍后再次嘗試(再次,“看起來像”)它一切正常 - 也許是因為操作系統有時間實際解決地址。

所以,我的問題是:(1)其他Android開發人員是否也看到了他們部署的應用程序的這種行為? 第一次,一系列“主持人未解決”的問題在以后發揮作用。 (2)有沒有人有更好的策略來“加熱DNS”這么說,以便第一個真正的連接起作用? 或者,當您遇到此異常時,您是否只是重新嘗試使用一些后退循環? 我正在考慮有一個單獨的線程試圖從我們的服務器獲取一個小文本文件,讓它只是循環,直到它得到它,並可能(不確定這部分)阻止其他傳出網絡連接,直到它成功。

無論如何,我已經在Stack Overflow上閱讀了各種類似措辭問題的答案,我只是向大家保證

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

在我的清單文件中設置:)

我在使用HttpUrlConnection時遇到過這種行為。 我使用簡單的解決方法 - 我在使用任何url之前執行以下代碼。

    try {
      InetAddress i = InetAddress.getByName(URLName);
    } catch (UnknownHostException e1) {
      e1.printStackTrace();
    }
// ... actually using URLName

我第一次在這里獲得UnknownHostException,但是url的下一個用法是成功的(DNS服務器返回正確的IP地址,我可以連接到服務器)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM