首先来个图:
附个链接:
material-dialogs
再附个链接(以微信的APK下载地址为例吧):
http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk
系统下载器DownLoadManager本身下载在通知栏中都有进度条,但是我想自己手动弹出一个dialog显示进度,所有就有了使用内容观察者ContentObserver实现进度。
1、ContentObserver作用:显示进度
2、BroadcastReceiver的作用:监听系统已经下载完毕发出的广播
1、主Activity
package com.zx.version;
import android.app.DownloadManager;
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.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.afollestad.materialdialogs.MaterialDialog;
import cn.trinea.android.common.util.PreferencesUtils;
public class DownloadActivity extends AppCompatActivity {
public static final String DOWNLOAD_ID = "download_id";
private DownloadChangeObserver downloadObserver;
private long lastDownloadId = 0;
//"content://downloads/my_downloads"必须这样写不可更改
public static final Uri CONTENT_URI = Uri.parse("content://downloads/my_downloads");
private MaterialDialog materialDialog;
private String NetUrl = "http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_downloa