2011-06-09 79 views

回答

3

有多种方式,你可以做到这一点:

  1. 如果你控制了Web服务器,你可以使用CD2M发布更新来注册的应用程序。

  2. 您编写了一个Android Service,它使用AlarmManager定期将其唤醒。然后,您可以使用HTTP If-Modified-Since标题确定页面是否更改,而不下载它。

  3. 你做了两种方法的混合。您编写一个服务器,按照选项2监视第三方网站,然后按照选项1使用C2DM唤醒您的应用。

+0

我不控制Web服务器。我知道我会有一些内部计时器来定期检查。报警管理器是否是最低内存配置文件的方式来做到这一点,或所有的方法是同样的内存密集型? 如果页面最近更新,肯定会有if-modified-since标头吗?我想你是说我需要阅读页面的html并检查提到的标题? – ihtkwot 2011-06-09 14:32:46

+0

为了获得AlarmManager的最佳性能,请使用setInexactRepeating()方法,因为它更加电池友好。 worken时,向服务器发出请求,包括if-modified-since标头。如果内容没有改变,服务器应该回应一个304(并且没有正文数据)。如果它已经改变,那么你会得到一个200响应和新的HTML在身体。 – 2011-06-09 14:38:31

+0

所以我需要使用HttpClient和HttpGet将请求放入服务器,然后我会测试我的HttpClient的200状态?或者我可以测试它是否等于304,假设如果它不等于200就会有变化。我是否将if-modified-since-header传递给HttpResponse调用? – ihtkwot 2011-06-09 16:29:34