Bizim app Bu kod ile bir görüntü dosyası indirmek. UI'de indirme ilerlemesini (indirilmiş bayt yüzdesi) göstermem gerekiyor. Bu kodda indirme ilerlemesini nasıl alabilirim? Çözüm aradım ama yine de kendi başıma yapamıyorum.Android'de RxJava, OkHttp ve Okio ile indirme ilerlemesini
Observable<String> downloadObservable = Observable.create(
sub -> {
Request request = new Request.Builder()
.url(media.getMediaUrl())
.build();
Response response = null;
try {
response = http_client.newCall(request).execute();
if (response.isSuccessful()) {
Log.d(TAG, "response.isSuccessful()");
String mimeType = MimeTypeMap.getFileExtensionFromUrl(media.getMediaUrl());
File file = new File(helper.getTmpFolder() + "/" + helper.generateUniqueName() + "test." + mimeType);
BufferedSink sink = Okio.buffer(Okio.sink(file));
sink.writeAll(response.body().source());
sink.close();
sub.onNext(response.toString());
sub.onCompleted();
} else {
sub.onError(new IOException());
}
} catch (IOException e) {
e.printStackTrace();
}
}
);
Subscriber<String> mySubscriber = new Subscriber<String>() {
@Override
public void onNext(String responseString) {
Log.d(TAG, "works: " + responseString);
}
};
downloadObservable
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mySubscriber);
sorumu http://danosipov.com/?p=678 ben cevabımı güncellenmiş ama bu yüzden can Okio bilmiyorum yüzdesi –