gpt4 book ai didi

android - 如何使用 Android 应用程序检测网站的新版本?

转载 作者:行者123 更新时间:2023-11-30 04:25:39 26 4
gpt4 key购买 nike

我有一个 android 应用程序,它是一个杂志网站的“链接”。

应用程序的 activity 将是杂志网站本身。

我为它制作了一个小部件,并运行了一个服务,其唯一目的是:检测新杂志何时在线。当服务检测到时,它会更改 小部件图标

现在我的疑问是如何检测新杂志。我在考虑每 6 小时从网站下载一个文件,并比较上一期杂志的版本(我可能会从 0 开始作为应用程序的局部变量,并与下载的文档提供的数字进行比较)。


有更好的方法吗?

最佳答案

这取决于您认为什么是“改变”。假设您想检测任何更改,请下载杂志主页/其他文件并对其执行 MD5 或类似哈希。存储哈希。

下次下载时,您会再次对其进行散列,然后比较散列。如果哈希值相同,则页面未更改。散列的好处是减少了存储需求 - 您只需保存少量字节,而不是整个文档。

但是请注意,大多数页面都不是静态的 - 想象一个页面的角落里有一个时钟或任何动态内容 - 在这种情况下,您的页面将始终看起来不同。

对于一些运行良好的站点和服务器,您可以查看 HTTP header 以获取有关页面何时创建/修改/设置为过期的信息。这不会由每个人提供,有时可能是完全错误的。

理想的解决方案是找到一个特定页面(或页面的一部分),每个新问题只会更改一次 - 然后您可以继续检查这一点。这方面的一个例子可能是始终指向最新一期的链接或随每一期而变化的主图像的 url。

当然,如果杂志愿意提供帮助,他们可以通过多种方式向您公开信息,从一个只有期号的简单文件到一个完整的网络服务。

编辑:假设您控制着多本杂志,我建议您有一个页面,以易于解析的格式(JSON、XML)返回每本杂志的最新一期列表。如果问题不常见/非常手动的过程,则此列表可以是静态的 - 在这种情况下,手动编辑它。更好的做法是读取一个简单的数据库表以生成列表 - 这样您就可以拥有一个漂亮的 UI 来更新它并允许其他人维护它而无需让他们访问服务器文件系统。

我还建议您为每本杂志和该杂志的每一期分配一个真正唯一的 ID/ key - 以便将来您可以添加其他功能,例如本地下载以供离线阅读/同步回刊。

关于android - 如何使用 Android 应用程序检测网站的新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8593479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com