如果我正确设置了我的Android Manifest XML文件,我可以在常规服务中处理C2DM意图(REGISTRATION和RECEIVE),而不是广播接收器吗?
显然,应用程序需要为此设计,但我只是好奇是否有可能或某些东西限制C2DM意图到广播接收器,因为我在网上阅读的每个例子都使用广播接收器,但在我看来,人们也可以使用服务。
答案 0 :(得分:1)
不,但您可以在广播接收器中接收广播,然后从该广播接收服务。
答案 1 :(得分:1)
来自Google的引用: Android设备上的应用程序无需运行即可接收消息。只要应用程序设置了正确的广播接收器和权限,系统就会在消息到达时通过Intent广播唤醒应用程序。
所以,不。接收消息的唯一方法是在广播接收器内。这没什么大不了的。通常您会收到该消息,然后您将呼叫服务。 Google甚至为您提供标准实施。 Google IO会话Android + App Engine: A Developer’s Dream Combination使用向导(请参阅下面的安装)来生成代码。
例如在ChromeToPhone code中搜索C2DMBaseReceiver
,C2DMBroadcastReceiver
和C2DMessaging
:您只需提供一个班级{{1继承自C2DMReceiver
并设置清单。
<强>更新强>
关于Client Login key expiration的Google bloggt。因此,我预计插件会更新,以包含处理该插件的源。与上面的会话视频相比,有些事情发生了变化首先你需要额外安装android向导(它不是谷歌插件的一部分):
然后,如视频中所述,您必须使用此向导:
在生成的项目中,您可以找到C2DMBaseReceiver
和c2dm.jar
。这些文件遍布互联网,但没有家庭位置下载最新版本。所以你必须通过向导生成它们。源文件不包含版本注释,也不处理密钥过期问题。