簡介:我有3個活動,DashBoard
,Feed
和Events
。 DashBoard是應用程序啓動時啓動的。從那裏用戶可以轉到Feed或活動。不同活動訪問的獨立下載程序類別(單獨的線程)
問題:我想在啓動DashBoard
時啓動下載(當然,在單獨的線程中)。從那裏用戶可以轉到Feed
或Events
,並且下載將在進行中或已經完成。應該通知活動Feed
或Event
(在實例中合適),通知下載完成並且數據可用。什麼是完成這個最好的方法?
我的當前代碼:我有一個下載類DownloadHandler
,它由DashBoard
活動啓動。該課程在單獨的線程下載。該類跟蹤一個名爲completed
的布爾值。它被實例化爲false
,當下載完成時,它被更改爲true
。
當前我的類Feed
或Events
將在一個單獨的線程中每隔100ms輪詢變量completed
,以便它不會阻塞UI線程。當completed
變量變爲true
時,它調用該特定類中的函數,該函數然後向DataHandler
類查詢下載的數據。
這是行不通的,但我覺得我的邏輯有點混亂,而且必須有更好的方法來做到這一點。因爲我使用兩個單獨的線程,一個用於下載,一個用於輪詢已完成的變量。有一個更好的方法嗎?
我已閱讀AsyncTask
和不同的回調,但問題是我無法在特定的類中指定回調。因爲當下載完成時,當前活動可能是DashBoard
,Events
或Feeds
。無法保證下載完成時哪些活動會在前面。
https://github.com/rajeshcp/Android-Download-Manager,看到這個基本上這是一個單一的類(DownloadManager),它會照顧你的應用程序內所有的http調用,你可以看看這,這是我在我的許多應用程序中使用的相同的東西,謝謝 – Triode 2012-03-26 15:03:50
恐怕下載管理器類不是我所需要的。我已經有一個有效的下載管理員課程。我只需要它能夠根據哪個活動打開 – 2012-03-26 16:04:41