imageview-子线程扫描手机图片更新ImageView和RecylerView导致系统崩溃

问题描述

子线程扫描手机图片更新ImageView和RecylerView导致系统崩溃
  我在主界面中使用了两个控件,一个是ImageView用来显示大图,一个是继承的RecylerView,用来实现类似Gallery的效果        在MainActivity中,我在OnCreate中扫描手机中的图片,并把目录信息、文件名等保存下来。扫描完毕以后,通过Handler发送消息,然后用handleMessage更新主界面。        后台我使用了一个子线程来加载图片,并保存到LruCache<StringBitmap>中,并且更新RecyclerView和ImageView的图片。        错误是这样的:        大多数时候系统都是崩溃的,但是偶尔能够成功执行,把手机中的图片显示在RecyclerView中,并且同步更新ImageView。        在Debug的时候,经常发现指针是空的。        而且Debug的时候,发现在扫描手机中图片以后,它并没有进入handleMessage以更新界面,而是直接进入了RecyclerView和ImageView的事件监听器中,然后就崩溃了。        但是偶尔能够成功,比如Debug时间够长的话,系统偶尔就能正常启动。        个人怀疑是由于线程乱序执行造成的一些指针为空造成的系统崩溃。       请问高人,我应该怎么做?
时间: 2024-09-11 04:28:47

imageview-子线程扫描手机图片更新ImageView和RecylerView导致系统崩溃的相关文章

EF6 Code first 使用上下文缓存时,多人同时操作更新,导致系统崩溃

问题描述 publicstaticDbContextGetCurrentDbContext(){//DbContextdbContext=CallContext.GetData("DbContext")asDbContext;//用这个调试对象一直为NULLDbContextdbContext=ObjectCache.GetCache("DbContext")asDbContext;//所以换成这个方法if(dbContext==null)//线程在数据槽里面没有此

Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文章之前,先简单说几句,首先是先恭喜下自己获得了2013年的博客之星称号,很意外也很开心,自己是从2013年开始写博客,那时候也不知道怎么写,我从小就不喜欢写日记,作文什么的,所以刚开始都是贴代码,也没有人看,后面慢慢的,写的文章被推荐博客首页和CSDN首页(这里也要小小的感谢下小编MM),访问量逐渐

Android应用中使用ContentProvider扫描本地图片并显示_Android

之前群里面有朋友问我,有没有关于本地图片选择的Demo,类似微信的效果,他说网上没有这方面的Demo,问我能不能写一篇关于这个效果的Demo,于是我研究了下微信的本地图片选择的Demo,自己仿照的写了下分享给大家,希望对以后有这样子需求的朋友有一点帮助吧,主要使用的是ContentProvider扫描手机中的图片,并用GridView将图片显示出来,关于GridView和ListView显示图片的问题,一直是一个很头疼的问题,因为我们手机的内存有限,手机给每个应用程序分配的内存也有限,所以图片多

Android应用中使用ContentProvider扫描本地图片并显示

之前群里面有朋友问我,有没有关于本地图片选择的Demo,类似微信的效果,他说网上没有这方面的Demo,问我能不能写一篇关于这个效果的Demo,于是我研究了下微信的本地图片选择的Demo,自己仿照的写了下分享给大家,希望对以后有这样子需求的朋友有一点帮助吧,主要使用的是ContentProvider扫描手机中的图片,并用GridView将图片显示出来,关于GridView和ListView显示图片的问题,一直是一个很头疼的问题,因为我们手机的内存有限,手机给每个应用程序分配的内存也有限,所以图片多

[WPF]关于MemoryStream在子线程中操作报ArgumentException异常的问题

问题描述 在子线程中有一个读取二进制流到Flowdocument的方法publicstaticFlowDocumentFromXaml(stringbuffer){FlowDocumentfd=newFlowDocument();MemoryStreams=newMemoryStream(Convert.FromBase64String(buffer));TextRangetr=newTextRange(fd.ContentStart,fd.ContentEnd);tr.Load(s,DataF

安卓,子线程获取网络图片,发消息给主线程,主线程用图片填充listview,出错

问题描述 安卓,子线程获取网络图片,发消息给主线程,主线程用图片填充listview,出错 先上logcat: 我的xml布局就是一个按钮,和一个listview,listview里就一个imageview,按下按钮开始从网络获取图片,然后发消息到主线程,然后listview就填充数据.xml代码就不贴了. 以下是mainactivity public class MainActivity extends AppCompatActivity implements View.OnClickList

OkHttp3几个简单的例子和在子线程更新UI线程的方法

okHttp用于android的http请求.据说很厉害,我们来一起尝尝鲜.但是使用okHttp也会有一些小坑,后面会讲到如何掉进坑里并爬出来. 首先需要了解一点,这里说的UI线程和主线程是一回事儿.就是唯一可以更新UI的线程.这个只是点会在给okHttp填坑的时候用到.而且,这个内容本身在日常的开发中也经常用到,值得好好学一学. okHttp发起同步请求 第一个列子是一个同步请求的例子. private void performSyncHttpRequest() { OkHttpClient

android imageview加载网络图片无图片

问题描述 android imageview加载网络图片无图片 MainActivity.java package study_imageput.com.study_apktointent; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageV

详解Android中OkHttp3的例子和在子线程更新UI线程的方法

okHttp用于android的http请求.据说很厉害,我们来一起尝尝鲜.但是使用okHttp也会有一些小坑,后面会讲到如何掉进坑里并爬出来. 首先需要了解一点,这里说的UI线程和主线程是一回事儿.就是唯一可以更新UI的线程.这个只是点会在给okHttp填坑的时候用到.而且,这个内容本身在日常的开发中也经常用到,值得好好学一学. okHttp发起同步请求 第一个列子是一个同步请求的例子. private void performSyncHttpRequest() { OkHttpClient