傳統輪詢 (定時器 + HTTP 請求) 極其耗電耗流量。現代 Android 開發強烈建議使用推送服務。
App 客戶端 <--長連接/系統級通道--> 推送服務器 <--API/後台 SDK--> 應用後台
| 方案 | 特點 | 適用場景 |
|---|---|---|
| Firebase Cloud Messaging (FCM) | Google 官方、免費、全球穩定、需 Google Play 服務 | 國際版應用、有 GMS 設備 |
| 極光推送 (JPush) | 國內最早、穩定、免費額度大、支援 iOS/Android | 國內主流應用、首選 |
| 個推 (Getui) | 大數據畫像、精準推送、免費額度高 | 需用戶畫像營銷場景 |
| 小米/華為/OPPO/vivo 廠商通道 | 系統級保活、到達率極高、需各自開發者帳號 | 國內機型適配、作為補充 |
| 自建長連接 (Netty/WebSocket) | 完全可控、無第三方依賴、運維成本高 | IM、實時協作、特殊安全需求 |
build.gradle 添加依賴:implementation 'cn.jiguang.sdk:jpush:4.x.x'AndroidManifest.xml 配置權限、AppKey、Channel。Application 初始化:JPushInterface.init(this)。JPushMessageReceiver 重寫 onMessage。https://api.jpush.cn/v3/push。WorkManager 設置 PeriodicWorkRequest (最小 15 分鐘間隔),系統會批次執行、省電。HEAD 或 If-Modified-Since),僅檢查是否有更新。AlarmManager.setAndAllowWhileIdle (需權限)。結論:拋棄輪詢,接入推送 SDK,省電、省流、到達率高、開發維護簡單。