最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求android或java大神解答下這個小bug

求android或java大神解答下這個小bug

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

3 回答

已采納
?
alionSSS

TA貢獻(xiàn)57條經(jīng)驗 獲得超82個贊

拿一個子線程去執(zhí)行file.list(),然后onDestroy的時候打斷子線程,這樣可以嗎?

查看完整回答
1 反對 回復(fù) 2016-12-24
  • 夏Jue
    夏Jue
    謝謝你的回答,根據(jù)你的思路基本解決了這個問題.這幾天寫太多代碼寫暈了把它想復(fù)雜了,我把AsyncTask終止就可以了
  • alionSSS
    alionSSS
    多休息休息!解決了就好!
?
謙謙佳人

TA貢獻(xiàn)29條經(jīng)驗 獲得超7個贊

線程在未完成任務(wù)時,你是無法去強(qiáng)行讓它停止的。

對于java封裝好的api,你必須得繼承File類 ?然后重寫listFiles() 方法,如圖

http://img1.sycdn.imooc.com//585e291e0001c26809580332.jpg

直接將這個代碼塊拷過來就行,然后在其中的for循環(huán)第一行就加上activity的銷毀判斷

if(activity == null || activity.isFinishing()){

????return null;

}


查看完整回答
1 反對 回復(fù) 2016-12-24
  • 夏Jue
    夏Jue
    謝謝你的回答!這個我倒是從來沒想到過,受教了.
  • 夏Jue
    夏Jue
    你上面的listFiles方法我查看了下,這個方法一開始就調(diào)用了list()方法,而list方法是調(diào)用了 private static native String[] listImpl(String path);,表示是一個外部方法,沒辦法看源碼,應(yīng)該也無法用java實現(xiàn),所以也無法在里面的循環(huán)中添加條件控制,所以很遺憾也是不行的,不過非常感謝您提供的這個思路,相信對我以后的開發(fā)有很大幫助的.
  • 謙謙佳人
    謙謙佳人
    好吧,我也沒試過,只是這樣的方式比直接停止線程要靠譜一些。
點擊展開后面1
?
一條小咸魚

TA貢獻(xiàn)457條經(jīng)驗 獲得超255個贊

再開一個線程?

查看完整回答
反對 回復(fù) 2016-12-24
  • 夏Jue
    夏Jue
    原本就是異步執(zhí)行了,根據(jù)樓上的提醒把異步終止就可以了,謝謝你們的回答
  • 3 回答
  • 0 關(guān)注
  • 1861 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號