2013-02-26 1 views
0

Мне нужно каждый раз получать из базы данных разные сообщения. Я объясню, что когда в базе данных возникает новый вопрос, я хочу, чтобы пользователь получил сообщение типа «New_Question». Если в базе данных есть новый ответ, я хочу, чтобы пользователь получил сообщение типа «New_Answer». Таким образом, я могу делать разные вещи при получении сообщения от GCM. Как мне это сделать? Дальше, я хотел бы получить объект, который не является строкой из GCM. Является ли это возможным? и как я могу это сделать?Получите разные данные от GCM

Вот некоторые из моего кода:
Моя функция OnMessage в классе GCMIntentService:

@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); 
} 

Моя OnReceive функция в MainActivity:

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(); 
    } 
}; 

Спасибо большое!

ответ

0
  1. Вы не упомянули, что код, который вы используете на вашей стороне сервера для отправки сообщений, но в любом случае вы можете отправить все, что вы хотите, или быть более точным, вы можете отправить пары ключ/значение до 4096 байт. Например, вы можете отправить ключ «вопрос» или «ответ» в зависимости от состояния вашей базы данных. Или вы всегда можете отправить один и тот же ключ с разными значениями для определения типа сообщения.

  2. Какие типы вы хотите приобрести? Любой тип может быть отправлен как String и проанализирован приложением Android.

+0

Спасибо! Я хотел бы получить String и объект, который я создал. Можете ли вы сказать мне, где в коде я получаю эти значения? И как я их получаю? –