2012-06-23 46 views
0

我在我正在開發的應用程序中實現類似DownloadManager的功能。我使用AsyncTask將下載推送到後臺。
此AsyncTask位於一個名爲DownloadService的服務中,該服務在我的一個活動中實例化。所以這意味着多次下載可以從一個活動的不同實例開始。
我想要做的是有一個特定的活動,我可以讓所有當前正在運行的下載顯示其進度,並有按鈕來暫停或恢復下載。如何檢索AsyncTask的運行實例?

回答

1

如果你想要這樣的東西,你可以將所有異步任務存儲在服務中的所有異步任務中,然後用http://developer.android.com/reference/android/os/AsyncTask.html#getStatus%28%29檢查它們的狀態。

希望這會有所幫助!

+0

好,說我創建了你說的這個數組。我如何在不同於創建它的活動中訪問它?還有,我怎樣才能在不同的活動中添加它? –

0

取而代之的是在一個Activity中使用DownloadService,而是將它作爲類成員放入您的應用程序的Application類中,因爲每個應用程序只會存在一個此類的實例。然後您可以通過撥打((YourApplication)getApplication()).getDownloadService()來檢索您的活動。您將有:

  1. 創建一個類,擴展應用,說YourApplication
  2. 聲明它在清單文件中的<application>標籤作爲android:name="YourApplication"
  3. 用它在你的活動通過調用((YourApplication)getApplication()).someMethodToGetDownloadService()
+0

正如我所說的'DownloadService'是一個單獨的類(我沒有把它放在我的活動中,我只是在那裏實例化它)。 –

+0

偉大的然後在你的應用程序類中實例化它。在活動中檢索並向其提交任務。然後,您應該可以進行一項進度活動,以便您可以檢索所有正在運行的任務並允許對其執行操作。 – Jeshurun