【问题标题】:Receive GCM Data in Activity在活动中接收 GCM 数据
【发布时间】:2015-08-22 06:42:28
【问题描述】:

我正在通过 GCM 从服务器接收数据。我想在 Activity 上更新 ListView。但是,当我收到数据时,它在 BroadcastReceiver 中。如何将该数据发送到 Activity 以便我可以更新 ListView。

编辑:

我正在开发一个 RSS 应用程序。首先,我使用 MainActivity 从我自己的服务器获取所有的 RSS 数据并将其显示在 ListView 中。当新数据添加到服务器时,我使用 GCM 来获取通知。我在单独的类中获取新数据并将这些数据存储在List<FeedItem> 中。但是,问题是我不知道如何将新的List<FeedItem> 数据发送到 MainActivity 以显示它。就像 Facebook 中的“New Feeds”。

【问题讨论】:

  • 你的 mainActivity 和另一个 Activity 在哪里?
  • 信息太少。至少显示您的代码。
  • 你尝试了什么???
  • 我很抱歉信息较少,但我正在开发 Rss 应用程序,首先我使用 mainActivity 从我自己的服务器获取所有 Rss 并将它们显示在 listview 中,然后使用 GCM 技术。当新数据添加到服务器时获得通知,我在单独的类中获取新数据并将此数据存储在 List 中,所有这些都运行良好,但问题是我不知道如何发送新数据List 到 mainActivity 以显示它们 ,,,

标签: android multithreading event-handling


【解决方案1】:

当您在接收器中接收数据时,您需要再次广播。并在收到该广播时将广播接收器设置为活动更新列表。

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);
}

【讨论】:

    【解决方案2】:

    您可以使用broadcast reciverinterface 来更新您的列表视图。 对于您的情况,另一个解决方案是使用服务。 当我在我的服务中使用以下代码时:

       public void updateConversationUi() {
        if (mOnConversationUpdate != null) {
            mOnConversationUpdate.onConversationUpdate();
        }
    }
    

    onConversationUpdate 是在列表视图发生任何更改时调用的接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多