如何处理在ListView中显示的非持久数据?

时间:2014-06-23 15:47:40

标签: android persistence

我正在开发一个充当瘦客户端的应用。该应用程序将与服务器保持TCP连接,它们之间流动的数据量将非常小,只有文本。

我应该如何处理数据,考虑到这是典型情况:

  • 应用已启动,建立与服务器的TCP连接
  • 服务器发送一些数据,保存此数据并将其显示在ListView
  • 用户与应用程序交互,服务器将异步发送数据,应将其附加到ListView

我在想可能有一个主要的活动,它有一个成员列表,它将存储要在ListView中显示的对象。在(异步)接收一些新数据时,将通知主线程,它将反映ListView上的更改。

有更好的清洁方式吗?实现内容提供者和使用Loader看起来有点太多了,考虑到我真的不需要数据持续存在。

1 个答案:

答案 0 :(得分:0)

您可以创建自己的应用程序,扩展 android.app.Application ,您的列表将是您的应用程序的属性。

然后将Context用于AsyncTask,您可以将内容异步添加到List中。

最后,更新ListView的一个好方法是将ListActivity注册为List内容的所有更改的监听器。例如:

public interface IListChangeListener {
    public void onContentChange();
}

对于List内容的每个修改,您的应用程序将在所有侦听器上循环以调用onContentChange();

在列表活动中,您必须实施:

public void onContentChange(){
    // Reload the list adapter content and all the notifyDataSetChanged here 
}

当它被销毁时,不要忘记取消注册ListActivity作为监听器......