0

インターネットから画像のリストをバックグラウンドでSDカードにダウンロードして保存しようとしていますがAsyncTask、これは正常に機能します。

一方、メイン コードでは、SD カードに画像が存在するかどうかを確認します。存在する場合は画像をローカルにロードし、存在しない場合は URL 画像をロードします。

ファイルイメージは存在するが、書き込みが完了していない場合に発生します。この場合、webview は白いページを読み込みます。

これを試してみましたが、問題はファイルサイズがわからないことと、画像のサイズが異なることです。

if(file.exists() && file.length() > 18000){
    //Load SD file
}
else{
    //Load url
}

ファイルの書き込みが完了したかどうかを知る方法はありますか?

4

1 に答える 1

0

はいあります。

これを試して

final int giveUpTimeout = 5;
new Timer().schedule( new TimerTask() {
           public void run() {
              try{
                  int cc = giveUpTimeout;
                  while ( cc > 0 ) {
                      sleep(1000);   // wait 1 sec
                      cc --;
                      if ( file.exists() && file.lenght()>0 ) {
                           ... 
                          // LOAD sd FILE    
                          return ; // should exit
                          }
                      }
                  //  your else           
                  ... LOAD URL
                  }
              catch ( Exception e) { e.printStackTrace(); }
          }
      },
      0);

ビャルン=]

于 2012-06-10T12:47:02.893 に答える