2010-11-14 48 views
1

當我從android下載web文件時,我想通過服務在狀態欄的通知區域顯示進度條,但我無法做到這一點。我該怎麼做?我無法傳遞服務中的文件長度。我在EditText中提供URL,然後單擊Download Button。 Click之後一個類將在Click Listener上被調用,這個類有一個函數。在那個函數中,我正在處理或下載功能,現在我想在Notification Area Through服務中顯示進度條,但我無法做到這一點。請幫幫我。提前致謝。在Android中與服務在背景中的文件下載

回答

1

它應該是下載文件的服務,而不是活動(正如我現在理解的那樣)。完成後,服務會通知活動並(可選)傳遞結果。在這種情況下,您將能夠更新通知進度欄並仍然與用戶交互。

2
  1. 您不應該在事件處理程序中運行網絡代碼(或任何長時間運行/阻塞代碼)。這會阻塞主線程(EDT)並使應用程序無響應,可能會產生ANR。你應該使用AsyncTask

  2. 要顯示通知,只需創建一個new Notification(..),然後致電NotificationManager.notify()。您可以放心地在AsyncTask.onPreExecute()方法創建通知,並通過調用publishProgress(..)

一個例子ProgressBar in Notification AreaAsyncTask.doInBackground()方法中更新。您必須在2. AsyncTask中使用此內容。