gpt4 book ai didi

android - 在Android上将图片上传到Amazon S3时阻止线程

转载 作者:行者123 更新时间:2023-12-03 12:59:56 24 4
gpt4 key购买 nike

有没有办法阻止当前线程并等待图片上传到S3?

我上传到S3的代码已经在Android服务中的doInBackground()方法中运行了(必须按特定顺序进行其他网络调用),因此它不在主UI线程中。我只想知道什么时候上传完成,所以我可以取消通知,并向用户显示一切都已上传/完成。

我正在使用SDK v2,如下所示:

TransferUtility transferUtility = new TransferUtility(s3, ctx);
TransferObserver obs = transferUtility.upload(
S3BucketNamePhotoTEST,
imageId + ".jpg",
file, new ObjectMetadata());
obs.setTransferListener(new UploadListener(dbHandler, ctx, imageId));

其中UploadListener是实现TransferListener的类,在onStateChanged()方法中,我们可以检测到何时完成上传:
public void onStateChanged(int id, TransferState state) {
if (state == TransferState.COMPLETED) {
//do something here!
}
}

那不是我所需要的,因为当onStateChange()回调触发时,我的服务调用将完成很长时间。

但是,查看SDK v1(现在已不推荐使用),有一种方法可以阻止它,方法是:
TransferManager tx = new TransferManager(
credentialProviderChain.getCredentials());
Upload myUpload = tx.upload(myBucket, myFile.getName(), myFile);
...
// Or you can block the current thread and wait for your transfer to
// to complete. If the transfer fails, this method will throw an
// AmazonClientException or AmazonServiceException detailing the reason.
myUpload.waitForCompletion();

这个waitForCompletion()方法正是我所需要的,但是无法通过较新的API来使用。

有什么办法吗?

最佳答案

最后,我在这里从Amazon开发人员那里得到了答案->
https://github.com/aws/aws-sdk-android/issues/91

关于android - 在Android上将图片上传到Amazon S3时阻止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com