2017-11-21 6 views
0

다운로드 관리자를 사용하여 파일을 다운로드하고 설치합니다.파일을 삭제하지 않고 Android에서 다운로드 관리자 기록을 삭제하십시오.

실제로 디스크에서 파일을 삭제하지 않고 다운로드 기록에서 제거하는 방법이 있는지 궁금합니다.

내가 아는 한 사용자가 파일을 설치했는지 여부를 알려주는 콜백이 없으므로 디스크에 남겨두고 싶지만 다운로드 기록에서만 제거하십시오. 여기

내 다운로드 코드 :

// 다운로드 관리자 최종 DownloadManager.Request 요청 = 새로운 DownloadManager.Request (Uri.parse (appURL))를 생성;

// Save to here 
    request.setDestinationUri(this.apkUri); 

    // Retrieve system download service 
    final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); 

    // Queue request 
    manager.enqueue(request); 

    // Will fire off and perform installation when download completes 
    BroadcastReceiver onComplete = new BroadcastReceiver() 
    { 
     @Override 
     public void onReceive(Context ctxt, Intent intent) 
     { 
      performInstall(); 
      ctxt.unregisterReceiver(this); 
      //finish(); 
     } 
    }; 

    context.registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 

내 방송 수신기에 궁금한 또 다른 한가지가 마무리()가 필요합니까? 어떤 이유로 든 내부에서 finish 함수에 액세스 할 수 없으므로이 클래스를 도우미 클래스에서 호출합니다.

답변

0

대기 전에 :

  • 로컬 경로를 다운로드하는 접미사 ".download"를 추가

OnReceive 콜백 :

  • 는 DM 다운로드 열에서 지역의 URI를 얻을 (SRC)
  • Uri (dst)의 ".download"접미사를 제거하십시오.
  • 이름 바꾸기 "DST"에서 "SRC"다운로드

결과 관리자에서

  • 제거 ID : 디스크에 파일 여전히 및 DM은

    청소