在服务上使用AWS TransferUtility

时间:2017-05-26 20:15:12

标签: java android amazon-web-services awss3transferutility

我需要你的帮助,我正在为Android App报告一些信息(文本和图像),我使用服务来同步数据,当到达图像时,我使用的是TransferManager方法,它在大多数时候运行良好,知道这个方法已经弃用了,所以我搬出了TransferUtility方法,也运行良好但是我注意到 Activity 冻结了这种方法正在运行,我不知道该怎么做。

ps:我在异步任务中包含了该方法,但问题仍然存在。

感谢您的帮助。

我对该服务的代码是下一个:

let promise = null;

function getHomePage(){

  if(!promise){
     promise = driver.get(cdthost + '/#!/home');
   }

  return promise;
}

function run(){
  return getHomePage().then(function(){

  });
}

1 个答案:

答案 0 :(得分:0)

好的,我已经有很长一段时间了,但是我已经找到了解决方案,就是这样:

  • transferUtility 观察者有一个监听器附加,并且有一个 onStateChanged 方法,我可以检查其状态上传,这里我更新变量状态(“IN_PROGRESS”,“FAILED”,“PAUSED”,“COMPLETED”等)。

  • 在我调用 AsyncTask 的部分中,我必须添加一个 While 来检查 Variable 状态,所以它会在上传图片之前不要继续,代码将如下所示。

    if(is text){
      /*CONSUMES A WEBSERVICE*/
    }else if (is foto){
       new Subida().execute(module, another value);
    
       while (estadoFoto.equals("") || estadoFoto.equals("IN_PROGRESS")) {
           if (!cd.isConnectingToInternet()) {
                    break;
           }
       }
    
       if (estadoFoto.equals("COMPLETED")) {
          /*VALIDATE PHOTO */
       }
    }
    

就是这样。