次のタスクの遅延のために進行状況バーを実装する必要があります
FileOutputStream Fos= new FileOutputStream(FilePath);
byte buffer[]=Services.downloadFile(FilePath);
Fos.write(buffer);
さて、進行状況バーを更新するためにファイルがどれだけダウンロードされたかを知るにはどうすればよいですか
次のタスクの遅延のために進行状況バーを実装する必要があります
FileOutputStream Fos= new FileOutputStream(FilePath);
byte buffer[]=Services.downloadFile(FilePath);
Fos.write(buffer);
さて、進行状況バーを更新するためにファイルがどれだけダウンロードされたかを知るにはどうすればよいですか
ファイルをチャンクで提供しないため、これは簡単でServices.downloadFile()
はありません。ループがあれば、それは簡単です。
API を変更できる場合は、次のように変更することをお勧めします。
Services.downloadFile(File, OutputStream);
ファイルをdownloadFile()
ストリームに書き込みます。これで、さまざまなバージョンの をオーバーロードして、ストリームをラップし、書き込まれたバイト数をカウントできますwrite()
。
[編集]Services
RMI プロキシであることがわかりました。この場合、上記の方法は使用できません。代わりに、より複雑になります。
サーバー上にダウンロードのプールが必要です (「マップ」と考えてください)。プールを使用すると、ダウンロードごとに別のデータ ブロックを要求できます。
したがって、サーバーには次のものが必要です。
byte[] read()
ダウンロードを処理し、メソッドを持つオブジェクトを作成します。read()
メソッドは、バッファの内容を返し、それをクリアします。クライアントで:
read()
次に、サーバー上のダウンロード オブジェクトを呼び出すループが必要です。API は のようなもので、サーバーはマップ内のキーを検索し、ダウンロード オブジェクトread(key)
を呼び出します。read()