我在制作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 –