2015-09-06 20 views
0

我有一個應用程序,需要立即啓動數據傳輸,所以我希望能夠保持數據天線和wifi天線活着(不睡覺)。我不知道:Android保持數據天線活着

1)確保24/7天線殺死設備硬件快得多?
2)這樣做的最佳方式是什麼,但不會耗盡太多的帶寬(數據服務每月只有幾兆帶寬)。例如。每隔X秒ping我的服務器?

回答

0

是的,保持「天線在」(您的意思是蜂窩和WiFi接口)在使用時會耗盡電池。您需要編寫應用程序以避免不斷耗盡電池。如果你經常訪問網絡,那麼你也咀嚼用戶的蜂窩數據計劃,這可能是有限的。

要成爲一個好公民,您需要確保您的應用盡可能少地使用網絡。當然有幾種方法可以做到這一點。我認爲最好的方法是讓外部服務器通過數據更新向您的應用發送推送通知,以避免輪詢。設置起來有點複雜,但非常值得。

如果您更喜歡投票,有幾個選項。

您可以使用AlarmManager設置觸發網絡代碼的單個或循環報警,無論您的應用程序是否正在運行。當您在廣播接收器的onReceive()方法中處理代碼時,它使網絡接口保持活動狀態。

或者,您可以實現只在您的應用運行時才能運行的TimerTask。另一種方法是實施Handler並以重複間隔發佈Runnable任務。

我也非常喜歡RxJava這是非常強大的,但可能矯枉過正你正在做的事情。有了它,您可以使用間隔可觀察來設置反應序列鏈,以定期調用您的網絡代碼。

當您等待您的請求返回時,您可以在界面上獲取WakeLock,但如果您不釋放請求,這通常是過度殺毒和危險的。

對不起,我沒有提供示例,因爲有很多選項。