Android 정지점 리 셋 다운로드 기 JarvisDownloader 의 예제

JarvisDownloader
마 블 영 화 를 잘 아 는 사람들 은 자 비 스 를 잘 알 고 있다.그 는 아 이언 맨 의 스마트 집사 로 아 이언 맨 의 장갑 제조,대량의 데이터 분석,모델 링 협조 등 각종 스마트 작업 을 도 왔 다.안 타 깝 게 도 재 련 2 에서 자 비 스 는 영혼 의 보석 과 함께 Vision 을 합성 했다.아 이언 맨 은 가족 같은 스마트 AI 를 잃 었 고 나중에 토 니 는 자 비 스 의 일 을 F.R.I.D.A.Y 로 대체 했다.그러나 아 이언 맨 과 프 라이 데 이의 상호작용 을 보면 프 라이 데 이 를 일반적인 AI 로 만 생각 하고 자 비 스 를 대 하 는 감정 에 몰입 하지 않 았 다.
최근 재 연 3 개봉,중국 동시 개봉 하지 않 았 습 니 다.정말 아 쉽 습 니 다.노동절 은 홍콩 에 가서 보 려 고 했 지만 그 때 는 사람 이 많 을 거 라 고 생각 했 습 니 다.그래서 방학 동안 여가 시간 에 Jarvis Downloader 를 없 앴 습 니 다.Jarvis 라 는 이름 을 가 진 이 유 는 제 가 Jarvis 라 는 AI 를 너무 좋아 하기 때 문 입 니 다.인공지능 의 정상 에 속 하기 때 문 입 니 다!JarvisDownloader 는 Jarvis 만큼 강하 지 는 않 지만 파일 을 다운로드 하 는 데 는 많은 장점 을 갖 추고 있다.

주요 기능
  • 정지점 전송 다운로드 지원
  • 사용자 정의 폴 더 경로,파일 이름 을 지원 합 니 다.
  • 사용자 정의 SQLiteOpenHelper 지원,다운로드 진행 등 저장
  • 다운로드 진행 반전 시 자동 으로 UI 스 레 드 로 전환 하여 UI 를 업데이트 할 수 있 습 니 다.
  • 자동 으로 activity 와 생명 주 기 를 연결 하고 수 동 으로 방출 할 필요 가 없습니다
  • activity 가 보이 지 않 을 때 UI 가 업데이트 되 지 않 고 보 이 는 상태 에서 자동 으로 회 복 됩 니 다
  • 다운로드 기록 목록 조회 지원
  • JarvisDownloader 사용 하기
    원 격 라 이브 러 리 의존
    gradle
    
    repositories {
      
      maven{
        url "https://jitpack.io"
      }
    }
    
    dependencies {
    
      api 'com.github.yuwenque:JarvisDownloader:0.2.0'
    
    }
    
    
    데이터베이스 초기 화
    
    Jarvis.init(new DefaultDownloadHistoryDBHelper(applicationContext));
    AbsDownloadHistoryDBHelper 에 계승 되 는 관리 클래스 를 사용자 정의 할 수 있 습 니 다.다운로드 진 도 를 저장 하 는 데 사 용 됩 니 다.자세 한 작업 은 Default DownloadHistoryDBHelper 를 참고 하 십시오.
    권한 설정
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    Jarvis.Downloader 구축 다운로드 작업
    activity 나 service 에서 호출 하 십시오.
    
    //     
    Jarvis.Downloader downloader = Jarvis.with(this).withUrl("http://pic1.win4000.com/wallpaper/2017-10-11/59dde2bca944f.jpg");
    
    //    ui        
    downloader.allowBackgroundDownload(true);
    
    //       
    downloader.threadCount(3);
    //      ,   ,      Environment.getExternalStorageDirectory()+File.separator+"Jarvis"
    downloader.filePath(Environment.getExternalStorageDirectory() + File.separator + "Jarvis");
    
    //     ,   ,       ,           
    downloader.fileName("test.jpg");
    
    
    //       (  ),    100
    downloader.refreshTime(1000);
    
    //      
    //    context activity  Jarvis             ,     activity.runOnUiThread
    downloader.setDownloadListener(new DownloadListener() {
    
      /**
       *         
       * @param file
       */
      @Override
      public void onSuccess(File file) {
      }
    
      /**
       *     
       * @param downloadedSize          
       * @param progress      0-1.0
       */
      @Override
      public void onProgress(long downloadedSize, float progress) {
    
    
      }
    
      /**
       *      
       */
      @Override
      public void onStart() {
    
      }
    
      /**
       *      
       */
      @Override
      public void onPause() {
    
      }
    
      /**
       *      
       */
      @Override
      public void onFail() {
    
      }
    
      /**
       *     
       * @param b        
       */
      @Override
      public void onDelete(boolean b) {
    
      }
    });
    
    
    //    
    downloader.download();
    
    //    
    downloader.pause();
    
    //    
    downloader.recovery();
    
    //        ,      ,            
    downloader.delete();
    
    //          ,            
    downloader.deleteCacheFile();
    
    //         
    downloader.getDownloadState();
    
    //           ,           ,           
    downloader.getDownloadedProgress();
    //        
    downloader.getDownloadedProgress(new DataCallBack<Float>() {
      @Override
      public void onData(Float progress) {
    
      }
    });
    
    
    상기 코드 도 다음 과 같은 형식 으로 간소화 할 수 있다.
    
    Jarvis.with(this)
        .withUrl("http://pic1.win4000.com/wallpaper/2017-10-11/59dde2bca944f.jpg")
        .allowBackgroundDownload(true)
        .threadCount(3)
        .filePath(Environment.getExternalStorageDirectory() + File.separator + "Jarvis")
        .fileName("test.jpg")
        .refreshTime(1000)
        .setDownloadListener(listener).download();
    
    Jarvis 관리 다운로드 작업
    
    //          ,         
    Jarvis.getInstance().getDownloadedList(new DataCallBack<List<LocalFileRecordBean>>() {
      @Override
      public void onData(List<LocalFileRecordBean> localFileRecordBeans) {
    
        LocalFileRecordBean fileRecordBean= localFileRecordBeans.get(0);
        //    
        float progress = fileRecordBean.getDownloadedLength()*1.0f/fileRecordBean.getFileTotalLength();
    
      }
    });
    
    //        
    Jarvis.getInstance().pauseAllDownloader();
    
    //        
    Jarvis.getInstance().startAllDownload();
    
    //           
    Jarvis.getInstance().forceDeleteAll();
    
    //          ,     10     ,
    //      3           ,       20   ,                        
    Jarvis.getInstance().initThreadPoolLength(20);
    
    
    원본 코드 읽 기https://github.com/yuwenque/JarvisDownloader로 이동 하 십시오.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기