求android或java大神解答下这个小bug

是这样的,我的android程序中打开了一个activity,里面进去后就是用File对象 file.list()方法读取指定目录中的所有文件然后显示到GridView中,有一个小bug,比如我的目录下有大量文件,file.list()方法执行速度就会很慢,一直到能显示到GridView中需要一段时间,如果在还未获取完成时退出了该activity,但是它的获取操作可能还在继续,获取完后才会被回收?如果在该次操作(file.list获取文件)还没有完成并回收前再次进入该activity,则又会重新开始一次操作(file.list获取文件),导致更慢,所以我如何能在该activity执行onDestroy的时候终止掉这里面的操作?(file.list获取文件)求大侠解答,或提供思路,由衷感谢!如果您没接触过android,但是知道java的话,我就简单阐述下,能不能终止掉File对象中的.list方法,

夏Jue
浏览 1750回答 3
3回答

alionSSS

拿一个子线程去执行file.list(),然后onDestroy的时候打断子线程,这样可以吗?

谦谦佳人

线程在未完成任务时,你是无法去强行让它停止的。对于java封装好的api,你必须得继承File类  然后重写listFiles() 方法,如图直接将这个代码块拷过来就行,然后在其中的for循环第一行就加上activity的销毁判断if(activity == null || activity.isFinishing()){    return null;}

一条小咸鱼

再开一个线程?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java