2016-04-15 5 views
0

S3TransferUtilitySampleをhttps://github.com/awslabs/aws-sdk-android-samplesからダウンロードしました。AWS S3 TransferListenerが重複したID(COMPLETED)を受信しました

private void uploadFiles() { 
     File dir = new File("/storage/sdcard0/DCIM"); 
     File[] files = dir.listFiles(); 
     for(File file : files) { 
      uploadAFile(file); 
     } 
    } 

    private void uploadAFile(File file) { 
     if(file.isDirectory() || !file.exists()) { 
      return; 
     } 

     TransferObserver observer = transferUtility.upload(Constants.BUCKET_NAME, file.getName(), file); 
     observer.setTransferListener(new UploadListener()); 
    } 

と私UploadListenerは、次のようになります:そして、それに次のコードを追加することは、テストのためにUploadActivityだ

private class UploadListener implements TransferListener { 

     // Simply updates the UI list when notified. 
     @Override 
     public void onError(int id, Exception e) { 
      Log.e(TAG, "Error during upload: " + id, e); 
     } 

     @Override 
     public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) { 
      Log.d(TAG, String.format("onProgressChanged: %d, total: %d, current: %d", 
        id, bytesTotal, bytesCurrent)); 
     } 

     @Override 
     public void onStateChanged(int id, TransferState newState) { 
      if(newState == TransferState.COMPLETED) { 
       Log.d(TAG, "file transfer completed:" + id); 
      } 
     } 
    } 

uploadFiles()いくつかのボタンをクリックしてリスナーに呼ばれています。そして、私がフォローログました:あなたが見

file transfer completed:21 
file transfer completed:26 
file transfer completed:44 
file transfer completed:44 
file transfer completed:46 
file transfer completed:46 
file transfer completed:47 
file transfer completed:47 
file transfer completed:48 
file transfer completed:48 

を、IDSの一部が重複しています!それは有線です!何が問題なのか分かりますか?助けて。 (注:完了したら、さらに多くのことを行うにはIDを使用する必要があります)

答えて

0

サンプルアプリケーションの設定が原因です。転送の進行状況を追跡するリストビューがあります。ページがロードされると、進行中の各転送にリスナーをアタッチします。同じUploadListenerを登録します。あなたのものが2回トリガーされたようですが、実際にはリストビューからのものです。ホープは説明します。

+0

はい、そうです。ありがとうございました。 2番目の質問があります。[Androidの複数のファイルをAWS S3にアップロードできませんでした](http://stackoverflow.com/questions/36640372/android-upload-multiple-files-to-aws-s3-failed)それは同じコードですが、異なる問題です。あなたもそれを見てみてください。 –

関連する問題