GCMBaseIntentService只在Root Package中回调

时间:2013-06-05 22:56:01

标签: android push-notification google-cloud-messaging intentservice

我在我的应用中实现了GCM,但我遇到了一个奇怪的问题。 当我的IntentService替换GCMBaseIntentService位于我的root包中时,它可以正常工作。我在.MyGCMIntentService的清单中引用它。 根包将是com.example.rootpackage

当我将我的意图服务移动到另一个包时,例如com.example.rootpackage.service,从不调用意图服务。此时我会更新我的清单以指向com.example.rootpackage.service.MyGCMIntentService并且没有骰子。

我在Google的文档中遗漏了一些关于定位它的内容,还是这就是它的工作原理?

1 个答案:

答案 0 :(得分:3)

是的,它应该在根包中:

  

此意向服务将由GCMBroadcastReceiver(由GCM库提供)调用,如下一步所示。它必须是com.google.android.gcm.GCMBaseIntentService的子类,必须包含公共构造函数,并且应该命名为 my_app_package.GCMIntentService (除非您使用GCMBroadcastReceiver的子类来覆盖用于的方法命名服务)。

(引自here

编辑:

正如文档所述,如果您使用覆盖GCMBroadcastReceiver的{​​{1}}子类,则可以更改它:

getDefaultIntentServiceClassName