Anda dapat menggunakan progress bar untuk menunjukkan progres objek yang sedang diunggah atau diunduh.
Catatan Penggunaan
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization (Android SDK).
Contoh
Kode contoh berikut menunjukkan cara menggunakan progress bar saat mengunggah objek secara asinkron dengan asyncPutObject:
// Buat permintaan unggah.
// Tentukan nama bucket (misalnya, examplebucket), path lengkap objek (misalnya, exampledir/exampleobject.txt), dan path lengkap file lokal (misalnya, /storage/emulated/0/oss/examplefile.txt).
// Jangan sertakan nama bucket dalam path lengkap objek.
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");
// Atur fungsi callback progres untuk menampilkan progress bar.
put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
@Override
public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
// currentSize adalah ukuran bagian yang telah diunggah. Satuan: byte.
// totalSize adalah ukuran total file yang akan diunggah. Satuan: byte.
Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
}
});
// Unggah file secara asinkron.
OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
@Override
public void onSuccess(PutObjectRequest request, PutObjectResult result) {
Log.d("PutObject", "UploadSuccess");
Log.d("ETag", result.getETag());
Log.d("RequestId", result.getRequestId());
}
@Override
public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Exception permintaan.
if (clientExcepion != null) {
// Exception client, seperti exception jaringan.
clientExcepion.printStackTrace();
}
if (serviceException != null) {
// Exception layanan.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
// task.cancel(); // Membatalkan task.
// task.waitUntilFinished(); // Menunggu hingga task selesai.Referensi
Untuk kode contoh lengkap tentang penggunaan progress bar selama pengunggahan objek, kunjungi GitHub.