2016-10-13 3 views
2

Ich muss Bild für uns sagen, sagen wir 14 Tage. Bei einigen Webdiensten würde ich Apache setzen, um dies mit ExpiresActive On und ExpiresDefault "access plus 14 days" zu tun.Cache Bilder auf Android für mehrere Tage

Es ist möglich, dies mit Android zu tun? Natürlich kann ich Bilder auf dem Telefonspeicher speichern, aber das ist nicht die Lösung, nach der ich suche.

Ich lese dies article (Caching Bitmaps) - aber mit LruCache und dann Aufruf finish() wird den Cache zu zerstören, bin ich richtig oder gibt es etwas, das ich vermisse?

Gibt es andere Lösungen als das Speichern von Dateien im Telefonspeicher?

Antwort

0

So endlich löste ich es von SharedPreferences und File mit

Wie es

arbeitet ich einige Json mit base64 Bilder String haben. Und ich muss diese Werte für 7 Tage speichern. Also schreibe ich den JSON in eine Datei, speichere, setze Datumsstring (Erstellungsdatum) auf SharedPreferences. machen erhalten neue json von HTTP-Anfrage

  • abgelaufen - - Überprüfen Sie, ob JSON-Datei existiert
    1. Benutzer eine Aktivität
    2. Get Datum von SP
    3. Überprüfen Sie, ob das Datum abgelaufen
    4. Expired eröffnet
    5. Existiert - laden Sie Json aus der Datei
    6. ! Existiert - machen Sie neue JSON von http Anfrage und speichern Sie in eine Datei, Update Erstellungsdatum

    Ich bin mir nicht sicher, ob dies die richtige Lösung ist, aber es funktioniert für mich.

    +0

    Gute Analyse. Aber ich denke, es wäre besser, nicht als 'Shared Preference' - Date zu speichern. – RoCk

    1

    Eine Option, die Sie haben, ist UniversalImageLoader zu verwenden. Damit müssen Sie das Rad nicht neu erfinden. Sie können das Bild durch diesen Cache:

    DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true).cache.build(); 
    ImageLoader.getInstance().displayImage(url, iv, options, 
           new SimpleImageLoadingListener() { 
    ... 
    } 
    

    Es gibt auch andere Optionen wie cacheOnDisk(true). Dies ist jedoch möglicherweise nicht die ultimative Lösung für Ihr Problem, wenn Sie eine bestimmte Anzahl von Tagen des Cache-Mechanismus benötigen.

    EDIT

    Eine weitere gute Alternative für Sie Sync Adapter zu verwenden. Leider ist dies ein ziemlich langes Thema, also folge einfach dem Link, den ich angegeben habe. Um es zu verwenden, müssen Sie möglicherweise eine ContentProvider für Ihre App erstellen und dann eine Klasse erstellen, die AbstractThreadedSyncAdapter implementiert.

    +0

    danke für die Antwort, aber ich muss Zeit angeben ... – kristyna

    +0

    ich bearbeitet, um Ihnen eine andere Option zu geben. – user1506104

    +0

    Vielen Dank für Ihre Bereitschaft :) das ist toll im Thema der periodischen Bitmaps Update, aber löst nicht Caching ... Anyway +1 für Sync Adapter, weil ich noch nie davon gehört habe und es sieht aus wie ein mächtiges Werkzeug. – kristyna

    Verwandte Themen