마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다운로드매니저 프로그레스바로 상태표시

0 추천
안녕하세요 안드로이드 초보자 입니다 ㅎ

이번에 다운로드매니저를 사용해서 다운로드하는걸 연습해봤는데요

프로그레스다이얼로그를 사용해서 다운로드 상태를 표시해주고 취소버튼을 넣는걸 구현해보려 했는데

혼자 검색해보면서 하려니 어렵고 막연한 감이 있어서 글올립니다

어떤식으로 구현을 해야하는지 흐름이라도 알려주시면 감사하겠습니다 !!
범범 (200 포인트) 님이 2015년 11월 11일 질문

1개의 답변

0 추천
 
채택된 답변
파일 다운로드와 ProgressBar에 다운로드 상태 보여주는 예제로.. AsyncTask를 사용하는 예제를 많이 보실 수 있습니다. 아래 URL에서 AsyncTask로 어떻게 파일을 다운로드 하고 화면에 진행상태를 보여주는지 살펴보실 수 있습니다.  http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog
mcsong (44,040 포인트) 님이 2015년 11월 11일 답변
범범님이 2015년 11월 11일 채택됨
감사합니다! 열심히 분석해봐야겠네요 ㅎ
다운로드매니저를 통해 다운로드 받는형태에서도 프로그레스 다이얼로그를 띄울 수 있나요? AsyncTask를 활용하면 가능하려나요?
구체적으로 다운로드 매니저 소스나 혹은 소스 주소 알려주시면 살펴보겠습니다.
그냥 혼자 공부중입니다! 구현 한거는 다운로드받고 브로드캐스트로 다운완료되면 토스트메시지 띄우게 한게 전부입니다 다운로드과정에 프로그레스바를 하나 띄우는게 지금목표인데 잘안되네요  소스는 이정도입니다
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        manager=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);

    }
    public void downloadButton(View v){

        uri= Uri.parse(urlAdd);
        List<String> pathSegments=uri.getPathSegments();
        request= new DownloadManager.Request(uri);
        request.setTitle("다운로드 진행중");
        request.setDescription("다운로드");
        request.setDestinationInExternalPublicDir("/download", pathSegments.get(pathSegments.size() - 1));
        Environment.getExternalStoragePublicDirectory("/download").mkdirs();
        latestId=manager.enqueue(request);

    }
    private BroadcastReceiver completeReceiver=new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(MainActivity.this,"다운로드완료",Toast.LENGTH_LONG).show();
        }
    };

    @Override
    protected void onPostResume() {
        super.onPostResume();
        IntentFilter completeFilter=new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        registerReceiver(completeReceiver,completeFilter);
    }

    @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(completeReceiver);
    }
여길 참고해 보세요..
이게 좀 복잡하네요.. 파일의 데이터를 빈번하게 확인하는 스레드를 사용해야 하는 단점이 있네요..
http://stackoverflow.com/questions/15795872/show-download-progress-inside-activity-using-downloadmanager
감사합니다 열심히 또 분석해보겠습니다~!
...