可以取消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

回到顶部