[英]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.