Skip to content

android download library for download huge file, do not use this for simple raw

License

Notifications You must be signed in to change notification settings

MDL-Sinlov/MDL_Android_Download

Repository files navigation

[TOC]

MDL_Android_Download

  • this download use Android DownloadManager
  • Can check SD Path for support DownloadManager
  • download info recording at SQLiteDB
  • Use WeakReference for less MEM use

Version 0.0.4 method count 122

Less Runtime :

eclipse just use every repo at version download-x.x.x-jarLib.jar

Project Runtime:

  • Android Studio 2.1.2
  • appcompat-v7:23.4.0
  • Gradle 2.10
  • com.android.tools.build:gradle:2.1.2

Dependency

at root project build.gradle

repositories {
    maven {
        url 'https://raw.githubusercontent.com/MDL-Sinlov/MDL_Android_Download/master/mvn-repo/'
    }
    jcenter()
    ...
}

in module build.gradle

dependencies {
    compile 'mdl.sinlov.android:download:0.0.4'
}

Usage

Fast use

new OnDownloadListener

  • new class TestDownloadCallback implements OnDownloadListener for get info
private class TestDownloadCallback implements OnDownloadListener {


        @Override
        public void downloading(long downloadId, long status, MDLDownLoadInfo mdlDownLoadInfo) {
            // downloadId and status fast to query, all info in mdlDownLoadInfo
        }

        @Override
        public void downloadComplete(long downloadId, MDLDownLoadInfo mdlDownLoadInfo) {
            //all info in mdlDownLoadInfo {@link DownloadManager#STATUS_SUCCESSFUL}
        }


        @Override
        public void downloadError(long downloadId, int errorCode) {
            // errorCode in {@link DownloadManager#ERROR_UNKNOWN} and so no.
        }

        @Override
        public void downloadOutChange(long downloadId, long status) {
            // if out change download will call back at here
        }
        
        @Override
        public void downloadHistory(long downloadId, String downloadUri) {
            // history info
        }
    }

init MDLDownload

// nomal way static use
MDLDownload mdlDownload = new MDLDownload(this, DOWNLOAD_FOLDER_NAME, new TestDownloadCallback());

// last params version can use like app version for clear old download for remove DB data
// download file will not delete because it was cast to much resource
MDLDownload mdlDownload = new MDLDownload(this, DOWNLOAD_FOLDER_NAME, new TestDownloadCallback(), 2);

mdlDownload.setRefreshPeriodSeconds(5); //if not set default is 3
// mdlDownload.isRefreshRealTime(true); mostly if use list to show, you must not open refresh real time

// get download folder
mdlDownload.getDownloadFolder();

//for get download info
ArrayList<MDLDownLoadInfo> downloadInfo = mdlDownload.getDownloadInfoByDB();

//if you are update version please clear all data
  • must Observer data change at lifecycle
    @Override
    protected void onResume() {
        super.onResume();
        mdlDownload.bind();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mdlDownload.unBind();
    }

Config download

mdlDownload.submitDownload(APK_URL, DOWNLOAD_FILE_NAME, true);
mdlDownload.pauseDownload();
mdlDownload.resumeDownload();
mdlDownload.removeDownload();
mdlDownload.cleanAllDownload();
// and so on

#License


Copyright 2016 sinlovgm@gmail.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

android download library for download huge file, do not use this for simple raw

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages