我在製作Android應用程序。我們使用JSON鏈接從服務器獲取數據到android應用程序。例如:產品要交付時,服務器端會進行更改,但只有當應用程序發出GET請求時,應用程序纔會知道這些更改。由於此GET請求需要位於後臺服務中,因此我正在使用Alarm Manager。在鬧鐘管理器中,我必須設置特定的時間來檢查json網址中的更改,就像我保留一天的時間間隔一樣。我如何使它動態化,以便在服務器端發生更改時,應用程序將獲取GET請求。我的問題是後臺服務如何知道服務器端實時發生的變化。請幫助。謝謝你的閱讀。在服務器上發生更改時顯示通知
回答
您可以使用前臺服務運行所有的時間並在10秒後ping服務器。通過使用這個你可以做到這一點。 或者您也可以使用MQTT在服務器和應用程序之間推送和發佈消息。 您可以參考,這個鏈接,如何使用MQTT Android中 Basic Steps for Using MQTT in android
一步一步說明 https://www.survivingwithandroid.com/2016/10/mqtt-protocol-tutorial.html
這裏是鏈接,MQTT服務在Android上使用。 https://github.com/eclipse/paho.mqtt.android
你檢查出FCM
火力地堡雲消息允許服務器異步JSON消息發送到應用程序。您的應用可以通過實施FCM客戶端接收消息並執行任何操作。
你的選擇可能是:
- 只要在服務器上所做的更改,發送FCM消息包含變化的JSON數據體。可能效率低下,因爲需要在FCM消息中發送大量數據。
- 每當服務器數據發生變化時,嚮應用程序發送最小的FCM消息。當應用程序獲取此消息時,它可以創建一個GET請求到服務器。因此,只有當數據發生變化並且應用程序已收到有關更改的通知時,纔會需要您的GET請求。
即時通訊不使用firebase,所以我使用GCM,發佈這個問題後,我來了解GCM,我的數據是在PHP服務器上。 –
那麼,如果您要在您的應用程序中整合新的雲消息傳遞服務,我會推薦FCM而不是GCM。 https://medium.com/glucosio-project/whats-new-in-firebase-cloud-messaging-and-how-to-migrate-from-gcm-578019c2167d https://stackoverflow.com/questions/37311188/migration-from-gcm-to-fcm-needed –
- 1. 當事件發生在服務器上時,MVC顯示通知給用戶
- 2. 解決即時通知有關更改的用戶發生在服務器
- 3. Android FCM顯示觸發服務通知
- 4. SQL服務器更改通知和SqlDependency
- 5. 當網站發生更改時,通知在網站上閃爍?
- 6. 顯示更改通知
- 7. 推送通知在服務器更改時不起作用
- 8. 通知客戶端瀏覽器服務器上的更改
- 9. 在Redis服務器上更改時區
- 10. 生產服務器上的更改
- 11. 當我的服務器發生事件時,Facebook通知
- 12. 適配器 - 僅在值發生更改時才顯示視圖
- 13. 服務計時器通知
- 14. 在服務器運行時通過更改文件觸發SystemStackError?
- 15. 當服務器發生變化時立即獲取更改
- 16. 通知後UILocalNotification顯示視圖發生?
- 17. 點擊通知後更改服務值
- 18. 當oracle數據庫發生更改時發出通知
- 19. 發生IAM更改時發送SNS通知
- 20. iOS在後臺發生什麼事情時會顯示通知?
- 21. 顯示來自服務的Toast通知
- 22. Javascript服務人員onload顯示通知
- 23. 未顯示Android前臺服務通知
- 24. 前臺服務通知未顯示在Android 8上。+
- 25. 在從IOS中的MDM服務器發送推送通知時發生推送通知錯誤
- 26. YouTube的API - 「未知的錯誤發生在服務器上的」
- 27. Android服務在卷更改時接收通知
- 28. Jenkins通過SSH服務器發佈密碼更改超時
- 29. 通過單獨的服務進行更改時的通知
- 30. Android中的後臺服務,生成數據庫更改通知
會嘗試使用Foreground服務,但對於應用程序來說它不是太勞動密集型的,我猜它不能用於推送通知,所以MQTT可能會像你說的那樣有用,但我使用GCM,無論如何感謝您的幫助 –
你肯定是有幫助的!我認爲MQTT只用於I.O.T項目,我知道它也可以用於android也 –
所以請接受我的回答,以便其他人可以從中受益。謝謝@DivyangShah –