Android 刷新列表视图的更好方法?
我有一个包含Baseadapter填充的自定义ListView的活动。此ListView显示的数据一直在更改,因此我需要刷新列表 为此,我在线程中定期调用ListViewAdapter上的notifyDataSetChanged(),并在活动暂停时将Thread_paused设置为true。丑得要命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
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()
使用确定解决问题,因此数据由服务更改。也许将活动绑定到服务并传递自定义侦听器就可以做到这一点?