Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView如何知道哪个视图属于特定的AsyncTask线程_Android_Listview_Bitmap - Fatal编程技术网

Android ListView如何知道哪个视图属于特定的AsyncTask线程

Android ListView如何知道哪个视图属于特定的AsyncTask线程,android,listview,bitmap,Android,Listview,Bitmap,我已经通读了以下内容,它解释了listView的工作原理,如果在lruCache/diskCache中找不到位图,有时视图会启动asyncTask线程。但这种观点会被循环利用。因此,当asyncTask完成时,它如何知道要填充哪个视图?是否有一个简单的示例项目可以指导我?异步任务总是尝试填充作为参数提供的视图。因此,当屏幕方向改变,活动重新创建时,任务可能会完成解码位图,也可能不会完成解码位图,这取决于您阅读教程的距离,但它不会显示图像。一旦活动重新创建,将启动一个新的异步任务来加载映像。回收视

我已经通读了以下内容,它解释了listView的工作原理,如果在lruCache/diskCache中找不到位图,有时视图会启动asyncTask线程。但这种观点会被循环利用。因此,当asyncTask完成时,它如何知道要填充哪个视图?是否有一个简单的示例项目可以指导我?

异步任务总是尝试填充作为参数提供的视图。因此,当屏幕方向改变,活动重新创建时,任务可能会完成解码位图,也可能不会完成解码位图,这取决于您阅读教程的距离,但它不会显示图像。一旦活动重新创建,将启动一个新的异步任务来加载映像。

回收视图在回收时仍在那里。只要您不告诉AsyncTask它不应该填充到现在已回收的视图中,它就会在视图中显示错误的图像

您需要实现一个带有取消机制的AsyncTask,该机制通知AsyncTask它不应再填充,或者将任务中对视图的引用设置为null,然后在那里检查null


Picasso是一个图像加载库,它有一种方法,可以在创建新请求时立即取消对视图的预览请求,这基本上是在listview中滚动时发生的,并且视图被回收。

您是否发布了正确的链接?它不讨论ListView,而是缓存位图。提到的异步任务不关心任何列表视图。如果您阅读更多内容,我想在下一页将讨论列表视图