cra*_*ool 10 java android google-api-java-client android-asynctask google-drive-api
我已经使用官方API编写了一个应用程序来上传到Google驱动器,这非常有效.但是我无论如何都无法取消上传.我在ASyncTask中运行它,到目前为止,我已尝试制作驱动器对象,文件路径,令牌和其他一些变量.我也尝试使令牌无效,但似乎这只是从缓存中删除它并没有实际上使服务器端无效.我已经在ASyncTask上调用了cancel,但是如果在上传开始时它被取消,那么似乎无法阻止它.
我的问题是,如果用户开始上传100mb文件,他们无法取消它,除了打开和关闭互联网连接这是不切实际的.这是我的上传代码:
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();
Run Code Online (Sandbox Code Playgroud)
肯定有办法取消上传?
好问题!我提交了一项功能请求,可以取消媒体上传请求:
https://code.google.com/p/google-api-java-client/issues/detail?id=671
然而,基于该库的当前设计,这可能是难以实现的.
另一个需要考虑的选择是不使用AsyncTask而是自己实现多线程并中止正在运行的Thread.不愉快,但可能是你现在这样做的唯一选择.
归档时间: |
|
查看次数: |
4318 次 |
最近记录: |