国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 使用 DowanloadManager 實現(xiàn)下載并獲取下載進度實例代碼

2019-12-12 02:42:40
字體:
供稿:網(wǎng)友

Android 使用 DowanloadManager 實現(xiàn)下載并獲取下載進度實例代碼

實現(xiàn)代碼:

package com.koolsee.gallery; import java.util.ArrayList;import java.util.List;import java.util.Timer;import java.util.TimerTask; import android.app.Activity;import android.app.DownloadManager;import android.app.DownloadManager.Request;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.database.ContentObserver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.view.View.OnKeyListener;import android.view.View.OnTouchListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView; import com.koolsee.gallery.adapter.RecommendAdapter;import com.koolsee.gallery.model.Recommend;import com.koolsee.gallery.widget.GalleryFlow; /** * 首頁 * * @author zengxiaotao */public class testActivity extends Activity { private DownloadManager dowanloadmanager = null; private DownloadChangeObserver downloadObserver; private long lastDownloadId = 0; public static final Uri CONTENT_URI = Uri.parse("content://downloads/my_downloads"); @Override protected void onCreate(Bundle savedInstanceState) {  // TODO Auto-generated method stub  super.onCreate(savedInstanceState);  setContentView(R.layout.test);  String serviceString = Context.DOWNLOAD_SERVICE;  dowanloadmanager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);   Uri uri = Uri.parse("http://commonsware.com/misc/test.mp4");  Environment.getExternalStoragePublicDirectory(   Environment.DIRECTORY_DOWNLOADS).mkdir();   lastDownloadId = dowanloadmanager.enqueue(new DownloadManager.Request(uri)           .setAllowedNetworkTypes(            DownloadManager.Request.NETWORK_MOBILE            | DownloadManager.Request.NETWORK_WIFI)           .setAllowedOverRoaming(false)           .setDestinationInExternalPublicDir(            Environment.DIRECTORY_DOWNLOADS, "test.mp4"));  registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));  downloadObserver = new DownloadChangeObserver(null);  getContentResolver().registerContentObserver(CONTENT_URI, true, downloadObserver); } class DownloadChangeObserver extends ContentObserver {   public DownloadChangeObserver(Handler handler) {   super(handler);   // TODO Auto-generated constructor stub  }   @Override  public void onChange(boolean selfChange) {   queryDownloadStatus();  } }   private BroadcastReceiver receiver = new BroadcastReceiver() {  @Override  public void onReceive(Context context, Intent intent) {   //這里可以取得下載的id,這樣就可以知道哪個文件下載完成了。適用與多個下載任務的監(jiān)聽   Log.v("tag", "" + intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0));   queryDownloadStatus();  } };  private void queryDownloadStatus() {  DownloadManager.Query query = new DownloadManager.Query();  query.setFilterById(lastDownloadId);  Cursor c = dowanloadmanager.query(query);  if(c != null && c.moveToFirst()) {   int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));    int reasonIdx = c.getColumnIndex(DownloadManager.COLUMN_REASON);   int titleIdx = c.getColumnIndex(DownloadManager.COLUMN_TITLE);   int fileSizeIdx =    c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);   int bytesDLIdx =    c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);   String title = c.getString(titleIdx);   int fileSize = c.getInt(fileSizeIdx);   int bytesDL = c.getInt(bytesDLIdx);    // Translate the pause reason to friendly text.   int reason = c.getInt(reasonIdx);   StringBuilder sb = new StringBuilder();   sb.append(title).append("/n");   sb.append("Downloaded ").append(bytesDL).append(" / " ).append(fileSize);    // Display the status   Log.d("tag", sb.toString());   switch(status) {   case DownloadManager.STATUS_PAUSED:    Log.v("tag", "STATUS_PAUSED");   case DownloadManager.STATUS_PENDING:    Log.v("tag", "STATUS_PENDING");   case DownloadManager.STATUS_RUNNING:    // 正在下載,不做任何事情    Log.v("tag", "STATUS_RUNNING");    break;   case DownloadManager.STATUS_SUCCESSFUL:    // 完成    Log.v("tag", "下載完成");    // dowanloadmanager.remove(lastDownloadId);    break;   case DownloadManager.STATUS_FAILED:    // 清除已下載的內(nèi)容,重新下載    Log.v("tag", "STATUS_FAILED");    dowanloadmanager.remove(lastDownloadId);    break;   }  } }  @Override protected void onDestroy() {  // TODO Auto-generated method stub  super.onDestroy();  unregisterReceiver(receiver);  getContentResolver().unregisterContentObserver(downloadObserver); }}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲沃县| 平塘县| 和顺县| 阿克陶县| 安泽县| 措美县| 全州县| 安徽省| 蓝山县| 新龙县| 乐东| 固原市| 商洛市| 措勤县| 陕西省| 调兵山市| 顺义区| 石首市| 古交市| 罗田县| 隆子县| 南投市| 翼城县| 高尔夫| 南开区| 普兰县| 怀集县| 聂拉木县| 玛曲县| 长顺县| 安阳市| 绥化市| 正镶白旗| 保亭| 政和县| 贵州省| 德钦县| 布尔津县| 桓仁| 新竹县| 南溪县|