2012-09-07 111 views
1

我在應用程序中擴展了應用程序類。在那個類中,我有一個等待連接更改的BroadcastReceiver。如果我切換到飛行模式,它立即識別連接丟失並且接收到廣播,但是如果我失去了我的數據連接(即在地下等),即使沒有互聯網相關,也需要幾秒到幾分鐘的時間才能開始任務正在成功完成(即使您嘗試在瀏覽器中瀏覽)。 有沒有更精確的方法來確定互聯網連接何時首先丟失?Android連接BroadcastReceiver無法快速啓動

+1

我不會說不,但我的猜測是,由於連接/接收很敏感,並且由於許多原因可能會上下跳動,因此這種廣播將會延遲升級,以確保連接確實已經丟失。在飛機模式下,立即播放是安全的。你應該考慮到你的應用程序,如果你太密切地監視連接,你可能會得到一些不需要的行爲。 – vikki

回答

1

找出互聯網連接丟失的一種方法是對網絡錯誤進行適當的異常檢查。

如果引發網絡異常(套接字超時,I/O錯誤等),您可以將應用程序的狀態設置爲斷開連接。當然,這隻有在您積極嘗試通過網絡發送或接收數據時纔有效。

如果連接通知非常重要,可以使用遠程服務器進行定期檢查(例如ping一臺谷歌服務器),但是這會消耗電池,因爲觸摸網絡往往會使電臺保持清醒並吸引力。

+0

+1如果我可以指出保持收音機將會耗盡電池。 – StackOverflowed