目前,我使用 SDK 上传图片。但是,上传方法没有提供超时选项。因此我需要手动设置超时。一种选择是:
public static String uploadImg(String imgStream) {
final ExecutorService executor = Executors.newSingleThreadExecutor();
final Future<String> future = executor.submit(new uploadableTask(imgStream));
try {
final String res = future.get(500, TimeUnit.SECONDS);
return res;
} catch (final TimeoutException e) {
future.cancel(true);
executor.shutdownNow();
return null;
} catch (final InterruptedException e) {
return null;
} catch (final ExecutionException e) {
return null;
}
}
然而,future.cancel(true); 可能行不通。这取决于在uploadableTask 类中SDK 上传方法的实现(例如,如果不检查中断标志,则上传方法不能停止)。有人知道其他解决方案吗?