我正在使用FCM(最新的GCM)开发简单的文本消息应用程序,我在其中有一个名为ChatActivity的活动,它使用ListView显示消息列表。
但是,当任何新消息到达时,它将由FirebaseMessagingService类处理......
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim str_PathFileName As String = "C:\Temp" 'put your valid path
Using fd As New OpenFileDialog
With fd
.Title = "Select File Dialog"
.InitialDirectory = str_PathFileName
.FileName = IO.Path.GetFileName(str_PathFileName)
.Filter = "All files (*.*)|*.*"
.Multiselect = False
.RestoreDirectory = True
Dim result As DialogResult = .ShowDialog
MsgBox(result.ToString)
End With
End Using
End Sub
只要有新消息到达,此类就会在控制台中成功打印消息。
我的问题是,当我在onMessageReceived()类中从FCM收到新消息时,如何将该消息添加到ChatActivity中的ListView?
并且,在将项添加到ListView之后,如何在ListView适配器上调用.notifyDataSetChanged()?
答案 0 :(得分:0)
您可以通过多种方式将数据传递给Activity,并在收到消息时通过扩展名传递ListView。一种简单的方法是在Activity中设置BroadcastReceiver,然后当您收到FCM消息时,可以使用LocalBroadcastManager发送一个广播,指示您的活动应该更新ListView的适配器。有关详情,请参阅LocalBroadcastManager。
@McAwesomville建议使用Firebase Realtime Database,也是一个选项,您可以在Firebase Android Codelab中看到它用于简单的聊天应用。
答案 1 :(得分:0)
我在我的应用中使用FirebaseUI,效果非常好。您可以阅读更多相关信息here.