進度條用於指示上傳或下載檔案的進度。本文以GetObject介面為例介紹如何列印下載檔案(Object)的進度條。
注意事項
使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見如何初始化Android端OSSClient執行個體。
範例程式碼
以下代碼用於列印從examplebucket下載exampleobject.txt檔案的進度條。
// 構造下載請求。
// 依次填寫Bucket名稱(例如examplebucket)和Object完整路徑(例如exampledir/exampleobject.txt)。Object完整路徑中不能包含Bucket名稱。
GetObjectRequest get = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");
// 設定進度回呼函數列印進度條。
get.setProgressListener(new OSSProgressCallback<GetObjectRequest>() {
@Override
public void onProgress(GetObjectRequest request, long currentSize, long totalSize) {
Log.d("GetObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
}
});
// 非同步下載。
OSSAsyncTask task = oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
@Override
public void onSuccess(GetObjectRequest request, GetObjectResult result) {
Log.d("GetObject", "downLoadSuccess");
}
@Override
public void onFailure(GetObjectRequest request, ClientException clientException, ServiceException serviceException) {
// 請求異常。
if (clientException != null) {
// 用戶端異常,例如網路異常等。
clientException.printStackTrace();
}
if (serviceException != null) {
// 服務端異常。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
相關文檔
關於下載檔案的進度條使用方法的完整範例程式碼,請參見GitHub樣本。
關於初始化OSSClient,請參見如何初始化Android端OSSClient執行個體。