Android 在后台从服务填充ListView
我有一个包含列表视图、按钮和文本视图的应用程序。通过单击按钮,我使用ArrayAdapter向ListView添加了一个新项目。现在实现了一个从服务器接收信息的服务。如何从我的服务更新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
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中的接收器接收它?!:)我的意思是将一个包附加到随广播一起发送的意图上,并在接收时使用该包提取数据