2012-09-02 30 views
0

我需要創建一個簡單的應用程序來執行此操作: - 每次運行都嘗試從網上下載有點像20 pdf的內容(每次都從同一位置下載,因爲服務器會保留它每分鐘更新) - 主要活動將只是pdf的列表。一個目錄將被掃描下載的文件。如果有的話,他們將被列出。Android:從後臺下載網頁

問題是我需要下載'在後臺',但沒有'永無止境的服務'。

我想在應用程序啓動時創建啓動服務。主要活動掃描目錄顯示PDF,而服務嘗試下載PDF。

如果第一次不是所有的pdf都沒有下載,不是問題。

我試圖做到這一點,但服務'鎖定'的應用程序,所以該應用程序沒有響應。

我在想服務運行到一個單獨的線程。是真的嗎?

所以:最好的解決方案,讓活動運行平穩,但在後臺「東西」下載大量的文件?

回答

0

我會推薦深入檢查意向服務的概念。 http://developer.android.com/reference/android/app/IntentService.html

從一方面說,這是一項服務。這意味着當用戶從您的應用程序中按「主頁」時,系統不會終止下載。 然而,這不是

永無止境的服務

因爲它會準確地下載完成後結束(如果沒有更多的任務將陸續推出)。

,並回答你的問題:

我在想,服務運行到一個單獨的線程。是真的嗎?

這不是100%爲真。如果您只是使用startService並在Service.onCreate()中執行繁重的任務 - 它將掛起您的應用程序,因爲它在UI主線程中運行。 但是,如果您將擴展IntentService - 它有一個方便的方法來覆蓋onHandleIntenthttp://developer.android.com/reference/android/app/IntentService.html#onHandleIntent(android.content.Intent)),它將在單獨的線程中執行。 IntentService會爲你做到這一點。

讓我知道是否有任何問題。