2017-09-25 43 views
1

我在制作Android应用程序。我们使用JSON链接从服务器获取数据到android应用程序。例如:产品要交付时,服务器端会进行更改,但只有当应用程序发出GET请求时,应用程序才会知道这些更改。由于此GET请求需要位于后台服务中,因此我正在使用Alarm Manager。在闹钟管理器中,我必须设置特定的时间来检查json网址中的更改,就像我保留一天的时间间隔一样。我如何使它动态化,以便在服务器端发生更改时,应用程序将获取GET请求。我的问题是后台服务如何知道服务器端实时发生的变化。请帮助。谢谢你的阅读。在服务器上发生更改时显示通知

回答

3

您可以使用前台服务运行所有的时间并在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

+0

会尝试使用Foreground服务,但对于应用程序来说它不是太劳动密集型的,我猜它不能用于推送通知,所以MQTT可能会像你说的那样有用,但我使用GCM,无论如何感谢您的帮助 –

+0

你肯定是有帮助的!我认为MQTT只用于I.O.T项目,我知道它也可以用于android也 –

+0

所以请接受我的回答,以便其他人可以从中受益。谢谢@DivyangShah –

1

你检查出FCM

火力地堡云消息允许服务器异步JSON消息发送到应用程序。您的应用可以通过实施FCM客户端接收消息并执行任何操作。

你的选择可能是:

  1. 只要在服务器上所做的更改,发送FCM消息包含变化的JSON数据体。可能效率低下,因为需要在FCM消息中发送大量数据。
  2. 每当服务器数据发生变化时,向应用程序发送最小的FCM消息。当应用程序获取此消息时,它可以创建一个GET请求到服务器。因此,只有当数据发生变化并且应用程序已收到有关更改的通知时,才会需要您的GET请求。
+0

即时通讯不使用firebase,所以我使用GCM,发布这个问题后,我来了解GCM,我的数据是在PHP服务器上。 –

+0

那么,如果您要在您的应用程序中整合新的云消息传递服务,我会推荐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 –

相关问题