java httpurlconnection 進捗 - 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>
progressbar プログレスバー スマホ

私は更新される単純なアプリケーションを記述しようとしています。 このためには、ファイルをダウンロードしてProgressDialog 現在の進行状況表示できる単純な関数が必要です。 私はProgressDialogを行う方法を知っていますが、私はどのように現在の進捗状況を表示するか、最初の場所でファイルをダウンロードする方法がわかりません。




私はあなたのプロジェクトNetroidを使用することをお勧めします、それはVolley基づいています。 マルチイベントコールバック、ファイルのダウンロード管理など、いくつかの機能を追加しました。 これは何らかの助けになるかもしれません。




私はthisブログの記事が非常に有用であることを発見した、そのファイルをダウンロードするためにloopJを使用して、それは唯一のシンプルな機能を持って、いくつかの新しいアンドロイドの人に役立つだろう。




私はアンドロイドの開発を学び始めていましたが、私はProgressDialogが道のりであることを学びました。 ProgressDialogsetProgressメソッドがあり、ファイルのダウンロード時に進行レベルを更新するために呼び出すことができます。

私が多くのアプリで見た中で最も良いのは、進捗ダイアログの属性をカスタマイズして、進捗ダイアログの外観や感触をストックバージョンよりも向上させることです。 ユーザーがカエル、ゾウ、かわいい猫/子犬のようなアニメーションに関わっていることを保つのが得策です。 進行ダイアログでのアニメーションはユーザーを引きつけ、長い間待たされている気がしません。

私はProgressDialogブログ記事を書き、すぐにここで共有します。

編集: アンドロイドでファイルをダウンロードするときにプログレスバーを表示する




あなたは他の例のように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  
        } 
    }
});



私はAndroidのクエリがとても大きく、健康を維持するために維持されていないため、私が今使っている他の解決策の答えを追加しています。 そこで私はこの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