java 안드로이드 동영상 - Android로 파일을 다운로드하고 ProgressDialog에서 진행 상황을 표시합니다.





6 Answers

인터넷에서 물건을 다운로드하려는 경우 매니페스트 파일에 권한을 추가하는 것을 잊지 마십시오!

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloandroid"
    android:versionCode="1"
    android:versionName="1.0">

        <uses-sdk android:minSdkVersion="10" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

        <application 
            android:icon="@drawable/icon" 
            android:label="@string/app_name" 
            android:debuggable="true">

        </application>

</manifest>
플레이어 예제 url

업데이트 된 간단한 응용 프로그램을 작성하려고합니다. 이를 위해 파일을 다운로드하고 ProgressDialog 에서 현재 진행률표시 할 수있는 간단한 함수가 필요합니다. ProgressDialog 하는 방법을 알고 있지만 현재 진행률을 표시하는 방법 및 처음에 파일을 다운로드하는 방법을 잘 모르겠습니다.




Volley 기반으로하는 내 Project Netroid 를 사용하는 것이 좋습니다. 다중 이벤트 콜백, 파일 다운로드 관리 등과 같은 기능을 추가했습니다. 이것은 약간 도움이 될 수 있습니다.




나는 this 블로그 게시물이 매우 유용하다는 것을 알았고, 그 파일을 다운로드하기 위해 loopJ를 사용했다. 그것은 단지 하나의 간단한 기능만을 가지고 있으며, 새로운 안드로이드 녀석들에게 도움이 될 것이다.




나는 안드로이드 개발을 배우기 시작하면서, ProgressDialog 가 갈 길이라는 것을 배웠습니다. ProgressDialogsetProgress 메소드는 파일이 다운로드 될 때 진행 수준을 업데이트하기 위해 호출 할 수 있습니다.

많은 앱에서 내가 본 것 중에 가장 좋은 점은이 진행 대화 상자의 속성을 사용자 정의하여 진행률 대화 상자에 더 나은 모양과 느낌을주는 것입니다. 사용자가 개구리, 코끼리 또는 귀여운 고양이 / 강아지와 같은 애니메이션을 사용하는 것이 좋습니다. 진행 대화 상자에있는 모든 애니메이션은 사용자를 끌어 들이고 오랫동안 기다리지 않는 느낌을줍니다.

ProgressDialog 블로그 게시물을 작성하고 곧 공유하겠습니다.

편집 : android에서 파일을 다운로드 할 때 진행률 표시 줄 표시




Android Query 라이브러리를 사용하십시오. 실제로는 매우 멋지 네요. 다른 예제에서 볼 수있는 것처럼 ProgressDialog 를 사용하도록 변경할 수 있습니다. 레이아웃에서 진행보기를 표시하고 완료 후에 숨길 수 있습니다.

File target = new File(new File(Environment.getExternalStorageDirectory(), "ApplicationName"), "tmp.pdf");
new AQuery(this).progress(R.id.progress_view).download(_competition.qualificationScoreCardsPdf(), target, new AjaxCallback<File>() {
    public void callback(String url, File file, AjaxStatus status) {
        if (file != null) {
            // do something with file  
        } 
    }
});



나는 안드로이드 쿼리가 너무 커서 건강에 좋지 않기 때문에 지금 사용하고있는 다른 솔루션에 대한 다른 대답을 추가하고 있습니다. 그래서 나는이 https://github.com/amitshekhariitbhu/Fast-Android-Networking 으로 옮겼다.

    AndroidNetworking.download(url,dirPath,fileName).build()
      .setDownloadProgressListener(new DownloadProgressListener() {
        public void onProgress(long bytesDownloaded, long totalBytes) {
            bar.setMax((int) totalBytes);
            bar.setProgress((int) bytesDownloaded);
        }
    }).startDownload(new DownloadListener() {
        public void onDownloadComplete() {
            ...
        }

        public void onError(ANError error) {
            ...
        }
    });



Related