Android 刷新列表视图的更好方法?

Android 刷新列表视图的更好方法?,android,multithreading,listview,Android,Multithreading,Listview,我有一个包含Baseadapter填充的自定义ListView的活动。此ListView显示的数据一直在更改,因此我需要刷新列表 为此,我在线程中定期调用ListViewAdapter上的notifyDataSetChanged(),并在活动暂停时将Thread_paused设置为true。丑得要命 public void StartListener(){ new Thread(new Runnable() { public void run() { whil

我有一个包含Baseadapter填充的自定义ListView的活动。此ListView显示的数据一直在更改,因此我需要刷新列表

为此,我在线程中定期调用ListViewAdapter上的notifyDataSetChanged(),并在活动暂停时将Thread_paused设置为true。丑得要命

public void StartListener(){
  new Thread(new Runnable() {
      public void run() {
          while(!thread_paused){
              try {
                 Thread.sleep(5000);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
              runOnUiThread(new Runnable() {
                 public void run() {
                    ListViewA.notifyDataSetChanged();
                    Log.v("refresh", "refreshed view");
             }
        });
      }
     } 
  }).start();
}

@Override
public void onPause(){
  super.onPause();
  thread_paused=true;
}
我知道必须有一个更好的方法来做到这一点,也许是数据源上的某种侦听器


有什么建议吗?

简单回答:只要在列表数据更改时更新列表即可。在没有更改数据的情况下更新列表是没有意义的,因此任何更改数据的操作都应该调用
notifyDataSetChanged()

使用

确定解决问题,因此数据由服务更改。也许将活动绑定到服务并传递自定义侦听器就可以做到这一点?