我正在通过GCM从服务器接收数据。我想在活动上更新ListView。但是,当我收到数据时,它在BroadcastReceiver中。我如何将这些数据发送到Activity以便我可以更新ListView。
编辑:我正在开发一个RSS应用程序。首先,我使用MainActivity从我自己的服务器获取所有的RSS数据,并在ListView中显示它。当新数据添加到服务器时,我使用GCM获取通知。我在单独的类中获取新数据并将该数据存储在List<FeedItem>
中。但是,问题是我不知道如何将新的List<FeedItem>
数据发送到MainActivity来显示它。这就像FaceBook里的"New Feeds"
当你在接收器中接收到数据时,你需要再次广播它。并在活动中设置广播接收器,当你获得广播时更新列表。
public void sendBroadcast()
{
Intent intent = new Intent("send");
intent.putExtra("current speed", "102.4");
intent.putExtra("latitude", "12.2342342");
intent.putExtra("longitude", "12.21124");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
您可以使用broadcast reciver
或interface
更新您的列表视图。针对您的情况,另一个解决方案是使用服务。我在我的服务中使用了以下代码:
public void updateConversationUi() {
if (mOnConversationUpdate != null) {
mOnConversationUpdate.onConversationUpdate();
}
}
onConversationUpdate
是在列表视图发生任何变化时调用的接口。