2016-06-27 88 views
1

我有一段代碼取自此答案,以跟蹤應用程序中的服務器IP ping結果更改。 https://stackoverflow.com/a/28856469/6173138 這段代碼的問題是它只能跟蹤第一次運行時的ping變化..我想定期跟蹤它。我希望它像使用BroadcastReceiver檢測Internet連接一樣工作,但在我的情況下會檢測ping狀態。如何定期跟蹤網絡更改

任何人都可以幫助我嗎?真的很感謝任何建議

回答

0

您可以使用ScheduledThreadPoolExecutor定期運行您的AsyncTask並獲得新的ping狀態。

例如,如果你想運行AsyncTask檢查每5分鐘的平:

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1); 
scheduler.scheduleAtFixedRate(yourAsyncTask, 0, 5, TimeUnit.MINUTES); 
+0

感謝您的答覆。我應該在哪裏把這塊在我的代碼? – emenpy

+0

這真的取決於您何時想要啓動和停止獲取ping狀態。一般來說,當你的應用程序處於前臺並且應用程序停止時,你可能會想要啓動它,所以它不會永遠運行。請參閱活動生命週期: – nicobatu