android - Bild-Cache im internen Speicher speichern und wiederverwenden

In meiner App versuche ich, die Bilder im internen Speicher zu speichern, sodass sie nur in meiner App verwendet und nicht auf andere Weise angezeigt werden können.

Auf folgende Weise habe ich den Bild-Cache im internen Speicher abgelegt

File cacheDir = getApplicationContext().getDir("", Context.MODE_PRIVATE); 
File fileWithinMyDir = new File(cacheDir, "");

for(int i = 0; i < img.size(); i++)
{               
    String filename = String.valueOf(img.get(i).hashCode());
    String urlString = img.get(i);
    String PATH =  fileWithinMyDir + filename;
    DownloadFromUrl(PATH, urlString);
    img_path.add(PATH);
}

   private void DownloadFromUrl(String fileName, String urlStr) 
   {
      try 
      {
       URL url = new URL(urlStr);
       File file = new File(fileName);
       URLConnection ucon = url.openConnection();
       InputStream is = ucon.getInputStream();
       BufferedInputStream bis = new BufferedInputStream(is);
       ByteArrayBuffer baf = new ByteArrayBuffer(50);
       int current = 0;
       while ((current = bis.read()) != -1) 
       {
        baf.append((byte) current);
       }

       FileOutputStream fos = new FileOutputStream(file);
       fos.write(baf.toByteArray());
       fos.close();
    } 
    catch (IOException e) 
    {
        Log.e("download", e.getMessage());
    }
  }

img ist eine Arrayliste, die die Bild-URL enthält, von der ich noch nicht heruntergeladen habe. img_path ist eine Arrayliste, in der ich den Pfad speichere, in dem der Bild-Cache gespeichert wurde.

Der gespeicherte Pfad scheint wie folgt zu sein

/data/data/com.intr.store/app_1219784788

Ist dieser Pfad mit meinem Paketnamen der richtige? das habe ich nicht gegebenapp_ überall, aber wie kam es?

in einer meiner anderen aktivitäten möchte ich es in die bildansicht laden. Ich habe es folgendermaßen versucht

File filePath = getFileStreamPath(pth);
        i.setImageDrawable(Drawable.createFromPath(filePath.toString()));

Hier ist pth der Pfad und i die Bildansicht. Aber die App stürzt ab, wenn man das sagt

06-26 14:40:08.259: E/AndroidRuntime(6531): Caused by: java.lang.IllegalArgumentException: File /data/data/com.intr.store/app_1219784788 contains a path separator

Antworten auf die Frage(1)

Ihre Antwort auf die Frage