2013-02-17 35 views
0

我寫了一個簡單的應用程序,用於我的Galaxy SII,用於永久連接遠程服務器。它發送並接收數據5秒鐘。在應用程序工作時,沒有人不能打電話給我。網絡回答他 - 對話者不可用。 當我使用像K-9這樣的郵件客戶端時,也發生同樣的情況。不要緊,我使用GPRS或3G連接。Android,互聯網連接,普通電話沒有答案

構建互聯網應用程序以避免這個問題的主要規則是什麼?(我的意思是普通的無線電話連接有問題)?

我發送數據(遠程服務)普通的代碼是這樣的:

While (condition) 
{ 
try { 
Thread.sleep(500); 
} catch (InterruptedException e1) { 
// TODO Auto-generated catch block 
e1.printStackTrace(); 
} 

try { 
    out.write(data + "\n"); 
    out.flush(); 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
} 

問候, ARTIK

+0

「互聯網連接」和「來電」電話之間沒有任何關係!你想要做什麼?發佈你的代碼 – iTech 2013-02-17 18:06:10

+0

是的,我認爲你喜歡寫作,但是我的練習(和我的朋友在SGSII上練習)顯示出我寫的奇怪的問題。有很多時候當互聯網連接正在使用時,沒有人可以給我們打電話。我的簡單應用程序只是例子。即使我在手機上使用普通網絡瀏覽器,也是如此。 – Artik 2013-02-18 20:26:32

+0

考慮這樣做如何影響用戶體驗。持續不斷的連接正在耗盡電池並可能降低性能。仔細想想你的用例,以及爲什麼你認爲你需要定期連接。當然,從你的服務器使用推送機制會更有效率。像ARO工具https://developer.att.com/aro和這裏的指南將幫助您瞭解更多信息https://developer.att.com/developer/forward.jsp?passedItemId=7200042 – 2013-02-20 09:50:38

回答

0

首先,如果你想等待5秒你應該使用Thread.sleep(5000);不是Thread.sleep(500);這是半秒鐘。

其次,考慮你的數據發送到使用的Thread.sleep()while(condition)

Timer代替上述建議修改你的代碼後的服務器,嘗試從emulator測試和模擬電話

+0

謝謝。我會根據你的回答做。 – Artik 2013-02-18 21:41:44