[Xamarin] Android 透過 DownloadManager 下載檔案並且偵測是否下載完成
2015-11-30
上一篇文章(Android 透過 DownloadManager 下載檔案 ),我們寫到了如何透過DownloadManager 下載一個檔案,但是我們要如何才能知道下載進度如何呢?
先回顧一下上一篇文章下載的Code,最後一個部分我們必須要宣告一隻long 來抓住下載的編號
DownloadReference1=DownloadManager1.Enqueue(request);
之後,我們再看看檢查的Code
//檢查是否下載完成
FindViewById<Button>(Resource.Id.btnCheck).Click += delegate
{
try
{
//這邊在Android思維中很特別,是要先跟系統查詢DownloadManager 去透過代碼查詢自己的事件並且用一個Cursor抓住位置
ICursor cursor = DownloadManager1.InvokeQuery(new DownloadManager.Query().SetFilterById(DownloadReference1));
//這一行很重要 沒有將Curso 移到最前面會錯
cursor.MoveToFirst();
//取代代碼編號
//代碼一覽表: http://developer.android.com/reference/android/app/DownloadManager.html
var q = cursor.GetInt(cursor.GetColumnIndex(DownloadManager.ColumnStatus));
if (q == (int)DownloadStatus.Successful)
{
FindViewById<TextView>(Resource.Id.txtDownloadStatus).Text = "好了!!! , 代碼是:" + q;
}
else
{
FindViewById<TextView>(Resource.Id.txtDownloadStatus).Text = "還沒~~~~~ , 代碼是:" + q;
}
}
catch (Exception ex)
{
Log.Error("SampleDownloadManager", ex.Message + "," + ex.StackTrace);
}
};
如果等待網路連線的編號是: 4
正在下載中是2
成功代碼是8
關於代碼是多少可以參考這個網站:http://developer.android.com/reference/android/app/DownloadManager.html
範例下載