可以取消Google云端硬盘上传吗?
我已经使用官方API编写了一个应用程序,可以将其上传到Google云端硬盘,效果很好。但是我还是找不到取消上传的方法。我正在ASyncTask中运行它,到目前为止,我已经尝试过使驱动器对象,文件路径,令牌和其他一些变量都没有。我也尝试过使令牌无效,但是看来这只会将其从缓存中删除,而实际上并没有使服务器端无效。我在ASyncTask上调用了cancel,但是一旦上传开始就被取消了,似乎没有办法停止它。
我的问题是,如果用户开始上传100mb的文件,则无法取消该文件,然后再打开和关闭Internet连接是不可行的。这是我的上传代码:
java.io.File jFile = new java.io.File(path); //Does not get file just info File body = setBody(jFile, mimeType);
try
{
java.io.File mediaFile = new java.io.File(path);
InputStreamContent mediaContent =
new InputStreamContent(mimeType,
new BufferedInputStream(new FileInputStream(mediaFile)));
mediaContent.setLength(mediaFile.length());
request = drive.files().insert(body, mediaContent);
request.getMediaHttpUploader().setProgressListener(new CustomProgressListener());
File file = request.execute();
当然可以取消上传吗?
回答:
好问题!我提出了一项功能请求,要求可以取消媒体上传请求:
https://code.google.com/p/google-api-java-
client/issues/detail?id=671
但是,基于该库的当前设计,这可能难以实现。
要考虑的另一种选择是不使用AsyncTask而是自己实现多线程并中止正在运行的线程。这并不令人愉快,但可能是您现在执行此操作的唯一选择。
以上是 可以取消Google云端硬盘上传吗? 的全部内容, 来源链接: utcz.com/qa/407665.html