2015-05-04 72 views
1

我正在創建一個應用程序,點擊一個按鈕時,所選歌曲列表將被下載,並且只有在文件尚未完成下載時才需要開始下載文件。有什麼方法可以確認嗎?檢查文件在Eclipse中的下載完成時間

+1

您應該使用事務和異步通信。換句話說,我可以使用簡單隊列和同步線程 –

+0

你能舉個例子嗎?或者一個鏈接?會有幫助。 –

+1

我認爲Pshemo寫了一個很好的答案,你也可以看看那裏:http://stackoverflow.com/questions/8323955/download-files-in-queue-in-android –

回答

1

我不是Android或多線程專家,所以有可能是更好的方式來做到這一點,但我記得你可以使用執行人對於這種情況,像

ExecutorService es = Executors.newFixedThreadPool(1);// allow only one task to run, 
                // place rest of task in queue 
es.execute(new Runnable() { 
    @Override 
    public void run() { 
     //download file one 
    } 
}); 
es.execute(new Runnable() { 
    @Override 
    public void run() { 
     //download file two 
    } 
}); 

在第二個任務下載的文件會只有在前面任務中的代碼完成時才能執行。

+0

它會工作,如果我出一個循環? 另外,我會打開一個可下載的鏈接。因此,任務只是通過瀏覽器或默認設置下載管理器打開鏈接。 –

+0

@VirenChugh我沒有看到爲什麼這不起作用的原因,但正如我所說,我不是一個Android專家。你需要嘗試一下。或者,也許首先看看@ MarcinErbel提供的鏈接,在你的問題下評論。這個答案似乎是合理的。 – Pshemo

+0

試過了。我也瞭解這個概念。一次打開兩個鏈接。這是因爲我的功能沒有下載文件,只是打開一個觸發下載的鏈接。因此,一旦完成,它就轉到下一個文件。但是,這實際上幫助我在另一個項目中,所以謝謝。 :) –