是這樣的,我的android程序中打開了一個(gè)activity,里面進(jìn)去后就是用File對(duì)象 file.list()方法讀取指定目錄中的所有文件然后顯示到GridView中,有一個(gè)小bug,比如我的目錄下有大量文件,file.list()方法執(zhí)行速度就會(huì)很慢,一直到能顯示到GridView中需要一段時(shí)間,如果在還未獲取完成時(shí)退出了該activity,但是它的獲取操作可能還在繼續(xù),獲取完后才會(huì)被回收?如果在該次操作(file.list獲取文件)還沒有完成并回收前再次進(jìn)入該activity,則又會(huì)重新開始一次操作(file.list獲取文件),導(dǎo)致更慢,所以我如何能在該activity執(zhí)行onDestroy的時(shí)候終止掉這里面的操作?(file.list獲取文件)求大俠解答,或提供思路,由衷感謝!如果您沒接觸過android,但是知道java的話,我就簡單闡述下,能不能終止掉File對(duì)象中的.list方法,
3 回答
已采納

alionSSS
TA貢獻(xiàn)57條經(jīng)驗(yàn) 獲得超82個(gè)贊
拿一個(gè)子線程去執(zhí)行file.list(),然后onDestroy的時(shí)候打斷子線程,這樣可以嗎?

謙謙佳人
TA貢獻(xiàn)29條經(jīng)驗(yàn) 獲得超7個(gè)贊
線程在未完成任務(wù)時(shí),你是無法去強(qiáng)行讓它停止的。
對(duì)于java封裝好的api,你必須得繼承File類 ?然后重寫listFiles() 方法,如圖
直接將這個(gè)代碼塊拷過來就行,然后在其中的for循環(huán)第一行就加上activity的銷毀判斷
if(activity == null || activity.isFinishing()){
????return null;
}
點(diǎn)擊展開后面1條
添加回答
舉報(bào)
0/150
提交
取消