处理服务中的Google C2DM意图?

时间:2011-11-06 01:40:56

标签: android service broadcastreceiver android-c2dm

如果我正确设置了我的Android Manifest XML文件,我可以在常规服务中处理C2DM意图(REGISTRATION和RECEIVE),而不是广播接收器吗?

显然,应用程序需要为此设计,但我只是好奇是否有可能或某些东西限制C2DM意图到广播接收器,因为我在网上阅读的每个例子都使用广播接收器,但在我看来,人们也可以使用服务。

2 个答案:

答案 0 :(得分:1)

不,但您可以在广播接收器中接收广播,然后从该广播接收服务。

答案 1 :(得分:1)

来自Google的引用: Android设备上的应用程序无需运行即可接收消息。只要应用程序设置了正确的广播接收器和权限,系统就会在消息到达时通过Intent广播唤醒应用程序。

所以,不。接收消息的唯一方法是在广播接收器内。这没什么大不了的。通常您会收到该消息,然后您将呼叫服务。 Google甚至为您提供标准实施。 Google IO会话Android + App Engine: A Developer’s Dream Combination使用向导(请参阅下面的安装)来生成代码。

例如在ChromeToPhone code中搜索C2DMBaseReceiverC2DMBroadcastReceiverC2DMessaging:您只需提供一个班级{{1继承自C2DMReceiver并设置清单。

<强>更新
关于Client Login key expiration的Google bloggt。因此,我预计插件会更新,以包含处理该插件的源。与上面的会话视频相比,有些事情发生了变化首先你需要额外安装android向导(它不是谷歌插件的一部分): Eclipse wizard installation
然后,如视频中所述,您必须使用此向导:new project
在生成的项目中,您可以找到C2DMBaseReceiverc2dm.jar。这些文件遍布互联网,但没有家庭位置下载最新版本。所以你必须通过向导生成它们。源文件不包含版本注释,也不处理密钥过期问题。