Android notifyDataSetChanged()不冻结主线程

Android notifyDataSetChanged()不冻结主线程,android,multithreading,listview,Android,Multithreading,Listview,我有listview和自定义适配器,它们使用我自己的对象来绘制listitem 另一方面,我有一个实时收集信息的服务,每隔0.1秒,我的活动就会调用服务信息,然后通过调用myCustomAdapter.notifyDataSetChanged()方法重新绘制listview 这对我来说是不好的,因为对象非常大,我的UI线程冻结了一段时间,可能不到0.01秒,但仍然感觉用户体验不好 我正在更新的资源是由画布中的自定义绘图类绘制的一个圆。你们有谁知道如何处理这个问题吗?是否有一些方法可以在不停止UI

我有listview和自定义适配器,它们使用我自己的对象来绘制listitem

另一方面,我有一个实时收集信息的服务,每隔0.1秒,我的活动就会调用服务信息,然后通过调用
myCustomAdapter.notifyDataSetChanged()
方法重新绘制listview

这对我来说是不好的,因为对象非常大,我的UI线程冻结了一段时间,可能不到0.01秒,但仍然感觉用户体验不好


我正在更新的资源是由画布中的自定义绘图类绘制的一个圆。你们有谁知道如何处理这个问题吗?是否有一些方法可以在不停止UI线程的情况下更新数据并重新绘制listview

您应该尝试重用convertView,如下所示:

public View getView (int position, View convertView, ViewGroup parent){
    //inflate the view if it is null
    if( convertView == null ){
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    }
    //make the changes on your  convertView that are changed from row to row,
    //such as a text in a TextView
    return convertView;
}

您应该尝试重用convertView,如下所示:

public View getView (int position, View convertView, ViewGroup parent){
    //inflate the view if it is null
    if( convertView == null ){
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    }
    //make the changes on your  convertView that are changed from row to row,
    //such as a text in a TextView
    return convertView;
}

您应该尝试重用convertView,如下所示:

public View getView (int position, View convertView, ViewGroup parent){
    //inflate the view if it is null
    if( convertView == null ){
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    }
    //make the changes on your  convertView that are changed from row to row,
    //such as a text in a TextView
    return convertView;
}

您应该尝试重用convertView,如下所示:

public View getView (int position, View convertView, ViewGroup parent){
    //inflate the view if it is null
    if( convertView == null ){
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    }
    //make the changes on your  convertView that are changed from row to row,
    //such as a text in a TextView
    return convertView;
}


您需要显示一些代码以获得帮助。getView方法是否已优化?您可以重用视图(作为convertView传递)不,它没有优化有没有优化它的好教程?我回答说example@BorisPawlowski供日后参考,,请努力正确键入您的问题并正确设置其格式。您需要显示一些代码以获得帮助。getView方法是否已优化?您可以重用视图(作为convertView传递)不,它没有优化有没有优化它的好教程?我回答说example@BorisPawlowski供日后参考,,请努力正确键入您的问题并正确设置其格式。您需要显示一些代码以获得帮助。getView方法是否已优化?您可以重用视图(作为convertView传递)不,它没有优化有没有优化它的好教程?我回答说example@BorisPawlowski供日后参考,,请努力正确键入您的问题并正确设置其格式。您需要显示一些代码以获得帮助。getView方法是否已优化?您可以重用视图(作为convertView传递)不,它没有优化有没有优化它的好教程?我回答说example@BorisPawlowski为了将来的参考,请在正确键入您的问题和正确设置格式方面付出一些努力。我使用了这个,它解决了我的问题。非常感谢这是一个我想了一天多的问题。非常感谢!!!我用这个解决了我的问题。非常感谢这是一个我想了一天多的问题。非常感谢!!!我用这个解决了我的问题。非常感谢这是一个我想了一天多的问题。非常感谢!!!我用这个解决了我的问题。非常感谢这是一个我想了一天多的问题。非常感谢!!!