2013-01-07 30 views
0

我一直在阅读有关gcm的文档,我知道我必须注册才能接收我主ActivityonCreate方法上的GCM消息。但是,如果我的应用程序具有不同的入口点,该怎么办?我需要在哪里设置将应用程序注册到GCM的代码?我需要在每个作为入口点的Activity的每个onCreate方法中写GCMRegistrar.register(this, Constants.GCM_PROJECT_ID)吗?有没有其他方法?注册接收Android的GCM,在哪里和多少次?

一个入口点是主要的Activity,但用户也可以从通知跳转到详细信息屏幕。

谢谢!

+1

写在应用类的onCreate只有 –

回答

1

您可以为您的应用程序定义一个应用程序类别,您可以在应用程序启动时注册GCM,而无需关心接收相应意图的活动。

http://developer.android.com/reference/android/app/Application.html

检查onCreate方法

+0

好吧,其实我想过这是做的最好的办法。然而,应用程序类不会在每次打开应用程序时调用,因为它是单例并保留在内存中。因此,令牌可能会过期,直到应用程序完全停止并重新启动后才会刷新令牌。我是对的吗? –

+0

好吧,我错了,现在我明白了。我不需要每次打开应用程序时进行注册,因为如果注册ID过期,Google会将新注册ID自动发送到我的IntentService。 –

+0

准确地说,你只需要收到过期的id广播,就更新它 – noni