【发布时间】:2020-10-29 22:35:58
【问题描述】:
我目前正在为我的网站构建一个 Android 应用,我想为我的应用实现某个功能。以下是简要说明:
目前我的网站有所谓的“公告”(这些是可以由管理员通过管理面板发送的简单消息)。通过该网站登录的用户能够查看这些公告并因此阅读其中的内容。
在我的应用程序中,我也可以查看这些公告并阅读内容,但我也很乐意在出现任何新通知时立即通知我的用户。但是,这是我面临问题的地方。
由于该网站没有任何应用程序的API,我的应用程序基本上是获取公告的XML数据,然后将其解析为应用程序内部的数据,然后我可以将数据显示给内部的用户一个应用程序,通知也可以实现。使用工作管理器,我可以安排延迟 15 分钟(最少)的定期工作,然后通过比较我的应用内的公告 ID 来显示任何新公告发布的时间。
如您所见,这种处理方式非常麻烦且不是很方便,而且在我的情况下,15 分钟是一个很长的延迟,我需要用户在管理员发布后立即在应用程序中收到该通知一个在网站上。
我认为在这种情况下会是一个很好的实现:
- 不是每 15 分钟向服务器发送一次 HTTP 请求,Android 应用需要有一个监听器,即观察我网站的“公告”的内容
- 考虑到这一点,网站需要有一些可监听的容器来存储这些通知
- 只要“公告”的内容发生变化,我的应用就会获取所说的“公告”,并在执行一些额外操作后将其显示为通知
这就是我面临的问题,因为我不确定我应该如何以及究竟应该为网站和 android 应用程序使用什么来实现这种行为。请在这里指出正确的方向。
【问题讨论】:
-
使用诸如Firebase Cloud Messaging 之类的第三方服务或使用XMPP 之类的近实时消息传递协议实现自定义客户端/服务器逻辑。后者显然会非常复杂。