簡體   English   中英

我該怎么辦才能解決連接問題?

[英]What can I do to resolve the connection issue?

我有一個使用JSoup連接到Web服務器的應用程序,它運行良好。 不幸的是,上述網絡服務器不是很可靠。 我得到SocketException因為超時連接的到處都是。 我在修改后的IntentService中建立連接,而只是在catch(Exception e)塊中重復onHandleIntent(intent)

catch(Exception e){
Log.d(Tag, "in catch Exception block...");   
onHandleIntent(intent);
}

從理論上講,這應該起作用。 但是有時,我收到堆棧溢出錯誤,並且該應用程序非常不合常規地結束。 那么,我該怎么做才能使其變得更好?

我想繼續調用onHandleIntent,因此,也許我必須在迭代中而不是遞歸地調用它。 如果您可以給我有關如何迭代實現的建議,那將非常有幫助。 謝謝!

我想繼續調用onHandleIntent,因此,也許我必須在迭代中而不是遞歸地調用它。

那是對的。 如果遞歸地處理此問題,則服務器持續超時將不可避免地導致堆棧溢出。

如果您可以給我有關如何迭代實現的建議,那將非常有幫助。 謝謝!

像這樣:

for (int tries = 1; ; tries++) {
    Connection conn = null;
    try {
        // attempt to connect
        // do stuff
    } catch (SocketException ex) {
        if (/* timed out */ && tries < MAX_TRIES) {
            continue;
        }
        // report exception
    } finally {
        if (conn != null) {
            // close it
        }
    }
    break;
}

(也許有人會想到一種不太“笨拙”的方式來寫這個……)

暫無
暫無

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

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