假设我有来自服务器或本地数据库的数据。我在listview中显示它们。我在每个listview项目中都有四五个textview。现在我想每秒刷新一次listview项目(需求是这样的)。每秒更新ListView项目
我该如何做到这一点。 notifyDataSetChanged()是我知道的。
我想要一些强健的解决方案,不会使活动滞后。
请指导。
假设我有来自服务器或本地数据库的数据。我在listview中显示它们。我在每个listview项目中都有四五个textview。现在我想每秒刷新一次listview项目(需求是这样的)。每秒更新ListView项目
我该如何做到这一点。 notifyDataSetChanged()是我知道的。
我想要一些强健的解决方案,不会使活动滞后。
请指导。
我觉得使用notifyDataSetChanged是做到这一点的唯一方法。
为什么你认为这可能会使活动滞后?
使用带定时器的处理程序来刷新列表和ui。 – Hulk
它只会改变视图的某些属性。如果正确实现getView()方法,则不会在notifyDataSetChanged期间创建对象。 –
我想不断更新TextView的背景由于一个要求。在listview中的其他textview也是如此。 –
我认为你应该减少你的更新频率。 1秒对于更新太小。 你可以使用AsyncTask 每1秒执行一次。与postDelay()
private Thread t;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t = new Thread(){
@Override
public void run() {
try {
synchronized(this){
wait(2000); // set time whatever you want
}
}
catch(InterruptedException ex){
ex.printStackTrace();
}
lv.clear();
onCreate(null);
}
};
t.start();
}
帮助试试这个..
这是我的想法。在onCreate刷新活动中传递null而不会影响视图:) –
hv u用它做了什么? –
我认为最好的办法是只notifyDataSetChanged,我有一个疑问,那就是为什么你需要刷新列表视图中的每一秒。我认为只要您收到任何数据就可以刷新它。 –
你想要更新的数据首先显示吗?如果是这种情况,活动将会滞后。 –