2016-05-28 9 views
1

でのダウンロードは、私がfirebaseストレージからファイルをダウンロードしようとしていたとき。安定したインターネット接続がある場合はうまく動作します。しかし、途中でコンテンツをダウンロード中にインターネット接続が失われた場合、コンテンツをダウンロードしようとし続けるだけです。どのようにコンテンツがダウンロードされていないかを検出するには?Firebaseストレージ取扱ネットワークの中断進行

私はStorageReferenceonProgessListenerを実装しています。しかし、私はダウンロードの進捗状況がないかどうかを検出するためにどのように使用するかはわかりません。

new OnProgressListener<FileDownloadTask.TaskSnapshot>() { 
    @Override 
    public void onProgress(FileDownloadTask.TaskSnapshot taskSnapshot) { 
     //What to do with the taskSnapshot to detect if there are no progress in the download? 
    } 
}; 

答えて

2

アップロード、ダウンロードなどの操作は、自動的に再試行し、一時的な中断からあなたを守ります。 その時間にパケットを転送できない場合、操作を終了(失敗)する設定可能なタイムアウトがあります。 あなたはでこれを設定することができます。

//if we get interrupted for more than 2 seconds, fail the operation. 
FirebaseStorage.getInstance().setMaxUploadRetryTimeMillis(2000); 

アップロード、ダウンロードおよびその他の操作のための異なるタイムアウトがあります。アップロードして

、あなたは(あなたのソースがファイルだった場合)、あなたはそれが中断された場合でも、中断したところからアップロードを再開しようとすることができます。これを行うには、アップロードタスクから「アップロードセッションURI」を取得する必要があります。

task.addOnFailureListener(new OnFailureListener { 
    @Override 
    public void OnFailure(Exception error) { 
    Uri uploadsession = task.getSnapshot().getUploadSessionUri(); 
    //if you want to retry later, feed this uri as the last parameter 
    // to putFile(uri, metadata, uri) 
    } 
} 
+0

デフォルトのタイムアウトは2017年にこの時につまずく誰のためにアップロード/ダウンロードなどの操作のために2分間10分(例えば、getDownloadUrl) –

+1

あり、次のことが私の仕事: myRef.storage.maxDownloadRetryTime = 2 – taykay08

関連する問題