从GCM获取不同的数据

时间:2013-02-26 22:30:25

标签: android eclipse google-cloud-messaging

我每次都需要从数据库中获取不同的消息。我解释一下,当数据库中有新问题时,我希望用户收到类似“New_Question”的消息。如果数据库中有新的答案,我希望用户得到类似“New_Answer”的消息。这样,当我从GCM收到消息时,我可以做不同的事情。我该怎么做? 更进一步,我想得到一个不是来自GCM的字符串的对象。可能吗?我该怎么办?

以下是我的一些代码:
我在GCMIntentService类中的onMessage函数:

@Override
protected void onMessage(Context context, Intent intent) {
    Log.i(TAG, "Received message");
    String message = intent.getExtras().getString("price");

    displayMessage(context, message);
    // notifies user
    generateNotification(context, message);
}

我在MainActivity中的onReceive函数:

  public void onReceive(Context context, Intent intent) {
        String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
        // Waking up mobile if it is sleeping
        WakeLocker.acquire(getApplicationContext());


        // Releasing wake lock
        WakeLocker.release();
    }
};

非常感谢!

1 个答案:

答案 0 :(得分:0)

  1. 您没有提到您在服务器端使用的代码来发送消息,但无论如何您可以发送任何您想要的内容,或者更确切地说,您可以发送密钥/值对最多4096字节。例如,您可以根据数据库的状态发送“问题”键或“答案”键。或者,您始终可以使用不同的值发送相同的密钥以确定消息类型。

  2. 您想要获得哪些类型?任何类型都可以作为String发送并由Android应用程序解析。