2011-07-29 9 views
1

は、私がここにキャッシュに何かが作成されているかどうかをテストする方法は?

  public void putBitmapInDiskCache(URI imageUri, Bitmap avatar) { 
        File cacheDir = new File(this.getCacheDir(), "thumbnails"); 
        cacheDir.mkdirs(); 
        File cacheFile = new File(cacheDir, ""+imageUri.hashCode()); 
        try {  
        cacheFile.createNewFile();  
        FileOutputStream fos = new FileOutputStream(cacheFile);  
        avatar.compress(CompressFormat.PNG, 100, fos);  
        fos.flush();  
        fos.close();  
        } catch (Exception e) {  
        Log.e("error", "Error when saving image to cache. ", e);  

        } 



        } 

私は何かが私の非同期タスクにおけるキャッシュの内部にあるかどうかをテストしたいと思いません私の画像のキャッシュを作成しました。

ここには何かがあるかどうかテストしたい私の非同期があります。私が殺したアプリケーションの前にロードした画像。

//the important AsyncTask method. running the background thread to get the images and set them to the gallery. 
       private class MyTask extends AsyncTask<Void, Void, Void>{ 


       @Override 
       protected Void doInBackground(Void... arg0) {try { 
          getImages(); 
          Log.v("MyTask", "Image 1 retreived"); 
          getImage2(); 
          Log.v("MyTask", "Image 2 retreived"); 
          getImage3(); 
          Log.v("MyTask", "Image 3 retreived"); 
          getImage4(); 
          Log.v("MyTask", "Image 4 retreived"); 
         } catch (IOException e) { 
          Log.e("MainMenu retreive image", "Image Retreival failed"); 
          e.printStackTrace(); 
         } 
        return null; 
       } 

答えて

2

ファイルにexists関数を使用して、ファイルが存在するかどうかを確認できます。ファイルが存在しない場合はfalseを返します。

+0

上記のコードから、どのようにすればよいですか? –

+0

ファイルが存在しない場合に例外をスローするgetImage関数で使用できます。あなたができることは、イメージ名/パスを関数に渡してgetImage関数を汎用にすることです –

関連する問題