Android 平臺上長鏈接的實現

Android 平臺上長鏈接的實現

爲了避免讓 NAT 表失效,咱們須要定時的發心跳,以刷新 NAT 表項,避免被淘汰。

Android 上定時運行任務經常使用的方法有2種,一種方法用 Timer,另外一種是AlarmManager。

Timer

Android 的 Timer 類能夠用來計劃須要循環執行的任務,Timer 的問題是它須要用 WakeLock 讓 CPU 保持喚醒狀態,這樣會大量消耗手機電量,大大減短手機待機時間。這種方式不能知足咱們的需求。

AlarmManager

AlarmManager 是 Android 系統封裝的用於管理 RTC 的模塊,RTC (Real Time Clock) 是一個獨立的硬件時鐘,能夠在 CPU 休眠時正常運行,在預設的時間到達時,經過中斷喚醒 CPU。

這意味着,若是咱們用 AlarmManager 來定時執行任務,CPU 能夠正常的休眠,只有在須要運行任務時醒來一段很短的時間。


Android系統提供了AlarmManager類來管理鬧鐘定時提醒任務。經過AlarmManager實現定時提醒及定時循環提醒。那麼,AlarmManager類能夠應用到如下場景:
一、定時循環啓動組件(Component,如Activity、BroadcastReceiver),這樣能替代在後臺啓動Service進行定時提醒任務
二、實現鬧鐘的按小時、天、周等形式的定時循環提醒功能。
實現參考:http://www.cnblogs.com/jico/archive/2010/11/03/1868361.html html

相關文章
相關標籤/搜索