Android应用即使没有启动也会收到通知?

时间:2012-06-20 22:39:03

标签: android

考虑大型博客所拥有的应用程序(其工作方式非常类似于RSS源,但适用于您的手机)。每当博客发布新帖子时,应用程序都会在用户的手机上创建有关新帖子的通知。

以下是我想了解的一些事项:

  1. 该通知是由我手机上的应用程序提取还是被博客推送给它?
  2. 即使我没有启动应用程序,这怎么工作?
  3. Android平台的哪些类和服务用于创建此类应用程序?
  4. 非常感谢。

4 个答案:

答案 0 :(得分:3)

您可以通过以下方式轻松完成此类操作:

  1. 您是否已使用AlarmManager
  2. 设置闹钟
  3. 让闹钟的接收器启动检查更新的服务
  4. 使用NotificationManager
  5. 向用户显示通知

    这是一种投票解决方案,应该没问题,而且在大多数情况下可能会更好一些。

    但是,如果您需要推送解决方案,可以查看Android C2DM,它允许您的服务器向已注册的Android设备发送推送通知。

    修改

    应用程序如何在未启动的情况下运行?

    嗯,有几种方法。一个是任何应用程序都可以注册不同的设备事件;其中一个是启动完成事件。

    第二种方法是使用AlarmManager。如果应用程序设置了警报,则用户导航离开应用程序,然后操作系统决定关闭应用程序,警报仍然可以注册为在特定时间运行。触发此警报时,将运行应用程序开发人员喜欢的任何代码,包括启动服务。当然,在没有通知用户的情况下这样做可能是一个问题,特别是如果服务耗尽电池等等。

答案 1 :(得分:1)

当然,有很多方法可以做,但在一般情况下,我会想:

  1. 通过电话拉
  2. 即使您没有看到该应用,也可以在后台运行服务
  3. 这真的取决于应用程序的功能,您想了解的任何特定方面?

答案 2 :(得分:1)

单向:

  1. 应用可以在启动后通过Sercvice启动Broadcast。见这里:How to Autostart an Android Application?
  2. 应用程序在启动时启动Service,服务就像一个活动,除了没有用户界面,它在后台运行
  3. Service会不时查找新帖子,例如Runnable
  4. 中的ScheduledThreadPoolExecutor
  5. Runnable找到新帖子并发出通知
  6. 注意: 这也是一种民意调查解决方案。 而不是ScheduledThreadPoolExecutor你可以使用一个总是自己调用的Handler,或者只是一个不时睡觉和醒来的线程。恕我直言,ScheduledThreadPoolExecutor是'很好'的方式。

答案 3 :(得分:1)

  

该通知是由我手机上的应用程序提取还是被博客推送给它?

可能是。

  

即使我没有推出应用程序,这怎么工作?

嗯,在Android 3.1+上,您需要至少运行一次该应用才能使用这些内容。

除此之外,他们使用AlarmManager(拉动)或C2DM(推送)之类的东西,这些都不需要你“启动应用”,这比你需要保持Gmail活动更多打开以便能够收到新的电子邮件。