考虑大型博客拥有的应用程序(它们的工作方式非常类似于 RSS 提要,但适用于您的手机)。每当博客发布新帖子时,应用程序都会在用户手机上创建有关新帖子的通知。
以下是我想了解的一些事情:
- 该通知是由我手机上的应用程序拉出还是由博客推送给它?
- 即使我没有启动应用程序,这怎么能工作?
- Android 平台的哪些类和服务用于创建此类应用程序?
非常感谢。
考虑大型博客拥有的应用程序(它们的工作方式非常类似于 RSS 提要,但适用于您的手机)。每当博客发布新帖子时,应用程序都会在用户手机上创建有关新帖子的通知。
以下是我想了解的一些事情:
非常感谢。
您可以通过以下方式轻松执行以下操作:
这是一个轮询解决方案,在您描述的大多数情况下,它应该很好并且可能更好。
但是,如果您想要一个推送解决方案,您可以查看 Android C2DM,它允许您的服务器将推送通知发送到已注册的 Android 设备。
编辑
应用程序如何“不启动”运行?
嗯,有几种方法。一是任何应用程序都可以注册不同的设备事件;其中之一是启动完成事件。
第二种方法是使用AlarmManager。如果应用程序设置了警报,然后用户离开该应用程序,然后操作系统决定关闭该应用程序,则仍然可以注册警报以在特定时间运行。触发此警报时,将运行应用程序开发人员喜欢的任何代码,包括启动服务。当然,在不通知用户的情况下这样做可能是一个问题,尤其是在服务耗尽电池等情况下。
当然,有很多方法可以做到,但在一般情况下,我会想象:
Sercvice
via Broadcast
。请参阅此处:如何自动启动 Android 应用程序?Service
在启动时启动,服务就像一个活动,除了没有 UI 并且它在后台运行Service
不时寻找新帖子,例如Runnable
在ScheduledThreadPoolExecutor
Runnable
帖子并发出通知注意:这也是一个投票解决方案。而不是ScheduledThreadPoolExecutor
你可以使用一个Handler
总是调用自己的线程,或者只是一个不时休眠和醒来的线程。恕我直言 ScheduledThreadPoolExecutor 是“不错”的方式。
该通知是由我手机上的应用程序拉出还是由博客推送给它?
也可以是。
即使我没有启动应用程序,这怎么能工作?
好吧,在 Android 3.1+ 上,您需要至少运行一次该应用程序才能使这些东西正常工作。
除此之外,他们正在使用AlarmManager
(用于拉取)或 C2DM(用于推送)之类的东西,它们都不需要您“启动应用程序”,就像您需要保持 Gmail 活动打开才能获得新电子邮件一样消息。