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 回答