SDKsAndroid
跟踪文件上传进度
使用 Android SDK 的 OnPutFileListener 跟踪单次文件上传任务。
Android SDK 不设置全局文件上传 listener。每次调用 uploadFile() 时传入一个 OnPutFileListener,由该 listener 接收当前上传任务的进度、分片状态和完成信息。
OnPutFileListener uploadListener = new OnPutFileListener() {
@Override
public void open(long size) {
initializeUploadProgress(uploadTaskID, size);
}
@Override
public void uploadID(String id) {
bindSdkUploadID(uploadTaskID, id);
}
@Override
public void uploadComplete(long fileSize, long uploadedSize, long storageSize) {
updateUploadProgress(uploadTaskID, uploadedSize, fileSize);
}
@Override
public void uploadPartComplete(long partNumber, long partSize, String partHash) {
markPartComplete(uploadTaskID, partNumber, partSize, partHash);
}
@Override
public void complete(long size, String url, long type) {
completeUpload(uploadTaskID, size, url, type);
}
};
OpenIMClient.getInstance().uploadFile(resultCallback, uploadListener, putArgs);open() 可用于初始化总大小,uploadID() 返回 SDK 上传任务标识,uploadComplete() 提供上传过程数据,uploadPartComplete() 表示一个分片已经完成,complete() 返回最终大小、远端 URL 和资源类型。只有业务需要展示分片细节时才处理分片回调;普通进度条通常只需要过程回调和最终完成回调。
业务层仍应生成自己的稳定 uploadTaskID,并在 listener 闭包中关联界面状态。SDK 上传 ID、文件名和数组位置都不应代替业务任务主键。每个上传任务使用独立 listener;页面或账号状态销毁后应停止向旧状态分发回调。
完整的参数构造和错误处理见上传文件。
这个页面有帮助吗?