我正在Android應用程序中下載數據。流程是 - 活動啓動使用DownloadManager下載多個文件的服務。現在我想在活動用戶界面中顯示進度。我怎樣才能從服務到活動發送進度?更新從服務到活動的下載進度
我的方法是 - 當文件通過服務下載時廣播消息。在活動中,使用廣播接收器接收進度。這種方法足夠好嗎?如果不是最好的辦法是什麼?
我正在Android應用程序中下載數據。流程是 - 活動啓動使用DownloadManager下載多個文件的服務。現在我想在活動用戶界面中顯示進度。我怎樣才能從服務到活動發送進度?更新從服務到活動的下載進度
我的方法是 - 當文件通過服務下載時廣播消息。在活動中,使用廣播接收器接收進度。這種方法足夠好嗎?如果不是最好的辦法是什麼?
只需在創建活動的一個靜態方法...
像這樣
public static void updateUI(String value) {
//your coding logic
}
然後調用這個從服務
喜歡這個
(Your activity name).updateUI(value);
就是這種「安全」的方式嗎? – 2017-04-12 09:21:55
要與您的活動溝通,您可以使用LocalBroadCastManager
。從服務
發送更新:
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
接收更新的活動:
LocalBroadcastManager.getInstance(context).registerReceiver(
receiver, intentFilter);
檢查文件https://developer.android.com/training/run-background-service/report-status.html#ReportStatus
你在後臺服務下載?爲什麼不使用'Asynctask'? – 2014-10-28 05:35:37
@SweetWisherツ是後臺服務。下載任務需要時間。我從文檔中讀到的是'AsyncTasks理想地應該用於短操作(最多幾秒鐘)。' – Jaguar 2014-10-28 05:38:20