android. DownloadManager 사용하는 코드 패턴

DownloadManager를 이용해 특정 URL을 가진 웹 리소스를 다운로드 받는 코드는
다음과 같이 간결하게 작성할 수 있습니다.

Uri destinationUri = Uri.fromFile( new File( "/somewhere/downloadto.txt" ) );

DownloadManager dm = ( DownloadManager ) context.getSystemService( Context.DOWNLOAD_SERVICE );

//WebView 사용시 세션 공유 처리
CookieManager cm = CookieManager.getInstance();
String cookie = cm.getCookie( requestUri.toString() );

DownloadManager.Request req = new DownloadManager.Request( requestUri );
if( cookie != null ){
 req.addRequestHeader( "Cookie", cookie );
}
//WebView 사용시 세션 공유 처리 끝

req.setTitle( title );
req.setDescription( description );
req.setDestinationUri( destinationUri );
final long reqestId = dm.enqueue( req );

BroadcastReceiver br = new BroadcastReceiver(){
 @Override
 public void onReceive( final Context context, final Intent intent ){
  if( DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals( intent.getAction() ) && intent.getLongExtra( DownloadManager.EXTRA_DOWNLOAD_ID, 0 ) == reqestId ){

   context.unregisterReceiver( this );

   //TODO 완료시처리

  }//if
 }
};
context.registerReceiver( br, new IntentFilter( DownloadManager.ACTION_DOWNLOAD_COMPLETE ) );

다른글 읽기