0

我正在使用 FCM(最新的 GCM)开发简单的短信应用程序,其中我有一个名为 ChatActivity 的活动,它使用 ListView 显示消息列表。

但是,当任何新消息到达时,它将由 FirebaseMessagingService 类处理......

public class MyFcmListenerService extends FirebaseMessagingService {

    @override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        String from = remoteMessage.getFrom();
        Map<String, String> data = remoteMessage.getData();
        String body = rawData.get("body");

        Log.i("From",from);
        Log.i("Message",body);

    }
}

每当有任何新消息到达时,此类都会在控制台中成功打印消息。

我的问题是,当我在 onMessageReceived() 类中从 FCM 收到一条新消息时,如何将该字符串消息添加到 ChatActivity 的 ListView 中?

而且,将项目添加到 ListView 后,如何在 ListView Adapter 上调用 .notifyDataSetChanged() ?

4

2 回答 2

0

有很多方法可以在接收到消息时将数据传递给 Activity 并通过扩展 ListView。一种简单的方法是在您的 Activity 中设置一个 BroadcastReceiver,然后当您收到 FCM 消息时,您可以使用 LocalBroadcastManager 发送一个广播,指示您的 Activity 应该更新 ListView 的适配器。有关更多信息,请参阅LocalBroadcastManager

@McAwesomville 建议使用Firebase Realtime Database ,这也是一种选择,您可以在Firebase Android Codelab中看到它用于简单的聊天应用程序。

于 2016-06-04T02:17:14.357 回答
0

我在我的应用程序中使用 FirebaseUI,它运行良好。你可以在这里阅读更多关于它 的信息。

于 2016-06-06T17:57:12.867 回答