Android 更新listview';不带notifyDataSetChanged的视图项
我有一个带有listview的android应用程序,它。。布拉布拉。。显示位置的标题和地址。此外,它还以米和圆规显示距离 (抱歉,现在还不能发布截图:) 每当我从SensorManager监听器中获得新的compas数据时,我都会通知数据更改列表会用新的方向更新,一切正常,但是应用程序似乎会冻结几毫秒,没有什么严重的问题,但用户肯定会感觉到这种滞后效应 现在是我真正的问题: 是否可以只更新“CompasView”而不执行notifyDataSetChanged操作?Android 更新listview';不带notifyDataSetChanged的视图项,android,listview,Android,Listview,我有一个带有listview的android应用程序,它。。布拉布拉。。显示位置的标题和地址。此外,它还以米和圆规显示距离 (抱歉,现在还不能发布截图:) 每当我从SensorManager监听器中获得新的compas数据时,我都会通知数据更改列表会用新的方向更新,一切正常,但是应用程序似乎会冻结几毫秒,没有什么严重的问题,但用户肯定会感觉到这种滞后效应 现在是我真正的问题: 是否可以只更新“CompasView”而不执行notifyDataSetChanged操作? 我认为最好的方法是使用一些
我认为最好的方法是使用一些“findViewById”函数,将目的地保存在compasview中,并且只更新compasview,但我只能找到findViewById方法。您是否正在对UI线程进行大量计算?如果是这样,考虑执行<代码> AycCastase<代码>,以计算新值,然后在<代码> OnPixExcel()/<代码>中调用<代码> NoTyDyDATA转换()/<代码> -<代码> AycCastase>/P>方法。
private class MyAsyncTask extends AsyncTask<Params, Progress, Result> {
@Override
protected Result doInBackground(Params... params) {
//Do calculations here
return null;
}
protected void onPostExecute(Result result) {
//Submit new data to the listadapter
adapater.notifyDataSetChanged();
};
}
私有类MyAsyncTask扩展了AsyncTask{
@凌驾
受保护的结果doInBackground(参数…参数){
//在这里做计算
返回null;
}
受保护的void onPostExecute(结果){
//向listadapter提交新数据
adapater.notifyDataSetChanged();
};
}
不太可能,但是我正在计算Adapter.getView中位置的距离和方位角,但是如果问题出在哪里,那么列表在拖动时不应该滞后吗?如果在getView()中进行计算,当新视图进入列表时,您可能会遇到滞后(向下/向上滚动下一个/上一个列表项)好的,现在我在AsyncTask中进行所有计算,getView
只读取预先计算的值。它给了列表一些性能提升,它仍然不完美,但我真的不知道我如何才能找到问题。(但我不认为这是notifyDataSetChanged
),顺便说一句,它的性能确实可以接受,所以我就把它放在那里。