Ich schreibe eine App und ein accoopmanying Widget, das Daten benötigt. Diese Daten werden über das Internet heruntergeladen. Ich plane, einen IntentService zu verwenden, um den Download durchzuführen. Dieser Dienst speichert die Daten als Datei. Diese Datei wird dann sowohl von der App als auch vom Widget verwendet.Wie teile ich eine Datei zwischen Widget, Service und App?
Wie kann ich verhindern, dass die App und das Widget die Datei lesen, während der Dienst darauf schreibt?
Und wie kann ich verhindern, dass der Dienst in die Datei schreibt, während die App oder das Widget die Datei liest?
Danke!
Ok, das scheint eine einfache und gute Lösung zu sein. Aber ich weiß nicht über den Lebenszyklus für das Application-Objekt. Ist es verfügbar, wenn keine Aktivitäten erstellt und nur Widgets erstellt werden? –
Ich kenne die genaue Antwort auf Ihre Frage nicht, aber hier ist, was ich denke: Das Widget liest eine Datei und muss daher einen 'FileInputStream' öffnen. Dies muss in Java gemacht werden, daher ist das 'Application' Objekt MOST WAHRSCHEINLICH verfügbar. Wenn nicht, erstellen Sie einfach eine Methode in 'APP', die einen' FileInputStream' zurückgibt. Siehe zur Klärung bearbeiten. – gobernador
Die erste vorgeschlagene Lösung funktioniert großartig. Vielen Dank! –