谷歌云消息启动问题

时间:2013-07-16 16:31:38

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

我是BroadcastReceiver以及ServiceGoogleCloudMessaging的新手。我正在http://developer.android.com/google/gcm/gs.html

上学习本教程

将库导入我的工作区并将其引用到我的项目后,我收到运行时异常“没有找到类错误”。我浏览了互联网,发现错误可能与我的AndroidManifest.xml有关,因为我不知道本教程中描述的清单的一些事情,所以它可能有意义。

例如:

<receiver
    android:name=".MyBroadcastReceiver"
    android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <category android:name="com.my.package" />
    </intent-filter>
</receiver>
<service android:name=".MyIntentService" />

首先,在本教程中,他们声明了一个名为“MyBroadcastReceiver”的receiver但后来他们定义了一个名为“GcmBroadcastReceiver”的类,它扩展了BroadcastReceiver。所以我不知道它们是两个不同的东西,或者它是一个错误,它们应该被命名为相同。

第二件事是Service。教程中没有服务。所以我想我想创建一个服务

第三件事是,我不明白从BroadcastReceiver调用Service和/或MainActivity的方式或位置,它们是如何联系在一起的等等。

编辑:我正在使用新的Google Cloud Messaging API

1 个答案:

答案 0 :(得分:1)

不再需要该服务。它与较旧的API一起使用。广播接收器调用它来处理到达的消息和注册结果,但现在所有到达消息的处理都是在广播接收器中完成的。

您需要一个广播接收器类。你怎么称呼它并不重要。 GcmBroadcastReceiver是他们为演示应用创建的课程。名称MyBroadcastReceiver表明您应该在课堂上创建。不从主要活动调用广播接收器。将GCM消息发送到您的应用时会调用它。

至于你的No class def found error,假设你正在使用Eclipse,你可能错过了检查Java Build Path - &gt;订单和出口 - &gt; Android项目中的Android私有库标记。