SDKsAndroid
Receive messages
Use OnAdvanceMsgListener to receive new, offline, and online-only messages.
Configure the advanced message listener to receive incoming real-time messages, batched offline messages, online-only transient messages, and message status updates. The Android SDK maintains a single global advanced message listener; register it once during SDK initialization or user authentication in your application's shared messaging service layer to avoid accidental overwrites across activities or fragments.
Code example
private final OnAdvanceMsgListener messageListener = new OnAdvanceMsgListener() {
@Override
public void onRecvNewMessage(Message message) {
// Handle incoming real-time message; merge by clientMsgID
mergeMessage(message);
}
@Override
public void onRecvOfflineNewMessage(List<Message> messages) {
// Handle batched offline messages upon reconnection
for (Message message : messages) {
mergeMessage(message);
}
}
@Override
public void onRecvOnlineOnlyMessage(Message message) {
// Handle transient online-only message (not persisted locally)
handleOnlineOnlyMessage(message);
}
};
public void registerMessageListener() {
OpenIMClient.getInstance().messageManager.setAdvancedMsgListener(messageListener);
}Callback methods
| Method | Parameter | Description |
|---|---|---|
onRecvNewMessage | Message | Delivers an individual real-time incoming message. |
onRecvOfflineNewMessage | List<Message> | Delivers a batch of offline messages synchronized after reconnecting or logging in. |
onRecvOnlineOnlyMessage | Message | Delivers a transient online-only message (not counted in unread counts or persisted to disk). |
State synchronization model
- When receiving real-time or offline messages, first resolve the target conversation context using
sessionType,sendID,recvID, andgroupID. Then deduplicate and update the message list usingclientMsgIDas the unique key. - Messages delivered through
onRecvOnlineOnlyMessagerepresent temporary status updates or ephemeral signals and typically should not be written to the local message database. - Detailed message lifecycle events (such as revokes, deletions, modifications, and read receipts) are documented in their respective guides and summarized in the Message overview.
Was this page helpful?