我的代码如下所示:
final AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(s3AccessKeyId, s3SecretAccessKey));
final TransferUtility util = TransferUtility.
builder().s3Client(s3Client).context(context).build();
从“com.amazonaws:aws-android-sdk-s3:2.7.5”升级到“com.amazonaws:aws-android-sdk-s3:2.11.0”时,我的 logcat 中出现以下错误,即使上传仍在工作:
E/nsferNetworkLossHandler: TransferNetworkLossHandler is not created. Please call `TransferNetworkLossHandler.getInstance(Context)` to instantiate it before retrieving
E/UploadTask: TransferUtilityException: [com.amazonaws.mobileconnectors.s3.transferutility.TransferUtilityException: TransferNetworkLossHandler is not created. Please call `TransferNetworkLossHandler.getInstance(Context)` to instantiate it before retrieving]
当我更改代码以包含 TransferNetworkLossHandler 时:
TransferNetworkLossHandler.getInstance(context);
final AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(s3AccessKeyId, s3SecretAccessKey));
final TransferUtility util = TransferUtility.
builder().s3Client(s3Client).context(context).build();
不做任何事情,我不会再犯错误。
但是,这不是此错误消息的意图。它告诉您使用 TransferNetworkLossHandler,但没有关于如何使用它的文档。
如果上传不起作用,我只想向用户显示错误(如 Toast 或 AlertDialog)。所以我根本不需要处理程序。但我也不希望每次都将错误消息写入我的日志。此外,我不想使用这种只抓取一个实例而不用它做任何事情的骇人听闻的解决方案。
对于我的情况,这个处理程序的正确用途是什么?