Я создаю приложение чата, которое использует GCM для ввода сообщений и уведомлений.Передача данных из службы в текущую деятельность
В приложении у меня есть активность, в которой перечислены темы беседы (ConversationListActivity
) и активность, которая показывает разговор внутри потока (ConversationActivity
).
Я собираю новые сообщения в методе onMessage GCMIntentService. Уведомление работает, и сообщение записывается, как ожидалось.
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onMessage(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String sender = extras.getString("sender");
String message = extras.getString("message");
ConversationModel model = new ConversationModel(context);
model.open();
model.createMessage(sender, message.trim(), true, true, ConversationMessage.STATUS_SENT);
model.close();
this.createMessageNotification(context, sender, message);
}
}
Проблема заключается в том, если GCM толкает новое сообщение, а ConversationActivity
активен, я не хочу, чтобы генерировать уведомления. Вместо этого я хочу, чтобы разговор обновлялся напрямую.
Как сообщить активному ConversationActivity
обновить список сообщений каждый раз, когда появляется новое сообщение от GCM?
Вы сохраняете диалог сообщений в БД? – Sean
Да, 'ConversationModel' - это класс модели, который управляет sqlite DB. – drowneath