Android 在后台从服务填充ListView

Android 在后台从服务填充ListView,android,listview,android-listview,xamarin,xamarin.android,Android,Listview,Android Listview,Xamarin,Xamarin.android,我有一个包含列表视图、按钮和文本视图的应用程序。通过单击按钮,我使用ArrayAdapter向ListView添加了一个新项目。现在实现了一个从服务器接收信息的服务。如何从我的服务更新Listview,这是当我的服务器向我发送应答时触发的事件: static void HandleOnRespose (object sender, ServerInEventArgs e) { //add in listview a reponse from server (e.C

我有一个包含列表视图、按钮和文本视图的应用程序。通过单击按钮,我使用ArrayAdapter向ListView添加了一个新项目。现在实现了一个从服务器接收信息的服务。如何从我的服务更新Listview,这是当我的服务器向我发送应答时触发的事件:

    static void HandleOnRespose (object sender, ServerInEventArgs e)
    {
        //add in listview a reponse from server (e.CodeRespose)
    }

有几种方法可以实现调用活动的服务(老实说,有3种),您可以阅读更多有关它的信息。
建议是有效的,并且在处理可以放在捆绑包中的琐碎数据类型时可能足够好,但在处理更复杂的数据时可能会有点混乱。
我认为使用回调是最合适的方法(但它可能只是主观的事情)

通过回调实现从服务调用活动
  • 您必须在服务上注册回调。根据您的实施情况,您可以从活动中执行类似操作:

    yourService.someActionCallback = (codeResponse)=> 
     {
        //do whatever you want on your listview using the codeResponse
        lv.NotifyDataSetChanged();
     }
    
  • 从服务调用回调:

    static void HandleOnRespose (object sender, ServerInEventArgs e)
    {
       callback(e.CodeRespose);
    }
    
  • 就是这样


    另外,您仍然必须确保回调不为空,并始终注册回调(并在活动销毁时“注销”回调,但这只是基本要求。

    发送包含您的信息包的广播,并使用ListViews activityBundle或Intent中的接收器接收它?!:)我的意思是将一个包附加到随广播一起发送的意图上,并在接收时使用该包提取数据