全部產品
Search
文件中心

Object Storage Service:Android進度條

更新時間:Feb 28, 2024

進度條用於指示上傳或下載檔案的進度。本文以GetObject介面為例介紹如何列印下載檔案(Object)的進度條。

注意事項

範例程式碼

以下代碼用於列印從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());
        }
    }
});

相關文檔