Frage

Ich habe vor, einen Inventservice zum Herunterladen neuer Pakete (neue Elemente für die App) zu schreiben. Mein einziges Problem ist, dass ich, wenn ich das Ende der Downloads übertragen habe, das Speichermodell aktualisieren muss, wenn die App ausgeführt wird. Wenn es nicht ausgeführt wird, muss nichts getan werden, da die App das Speichermodell aus dem DB erstellt, wenn es startet. In Bezug auf die Leistung funktioniert die Benutzeroberfläche aus dem Speicher, nicht aus der DB. Irgendeine Idee, wie ich mich nähern soll oder bin ich total auf dem falschen Track?

EDIT: Für Klarheit: Nehmen wir an, ich habe MyinTentService, die neue Zeilen in meine DB einfügt und dann einen Rundfunkfeuchtigkeit feuert, der von MyBroadcastreceiver empfangen wird. Jetzt ist das Problem, mit dem ich ausgesetzt bin, dass die Instanz von MyBroadcastreceiver die Modellklasse, die ein Singleton ist, irgendwie benachrichtigen sollte. Das Problem ist, dass diese Modellinstanz (Singleton) nur dann verfügbar sein sollte, wenn meine App ausgeführt wird, da dies nur von der Benutzeroberfläche verzehrt wird (nur mit DB wäre der Weg zum Verlangsamen). Keine Notwendigkeit, meine Modellinstanz zu benachrichtigen, wenn es keine Benutzeroberfläche gibt, um sie zu verwenden. Ich kann mein Modell nicht zu einem Rundfunkveranstalter machen, da es zu jeder Zeit initiiert wird, und sie können auch nicht Singleton sein (soweit ich weiß).

War es hilfreich?

Lösung

Ich habe dies gelöst, indem ich das UI -Register als Broadcast -Empfänger habe und das Modell nach Bedarf aktualisiere. In meiner Lösung, wenn die Benutzeroberfläche vorhanden ist, wird das Modell immer instanziiert.

Eine andere Lösung besteht darin, zu prüfen, ob das Modell instanziiert ist und nur dann weitergeführt wird, wenn es sich handelt.

Andere Tipps

Es ist ein bisschen schwierig zu beantworten und etwas zu sagen, das nur Ihre Worte ohne Code hat. Möglicherweise ist zusätzlichen Teil Ihres Projekts, das Ihr "Speichermodell" von DB initialisiert/erstellt. Dieser Teil sollte unpeadent sein, sodass Sie es jederzeit, während des Starts Ihrer Aktivitäten/Anwendung oder beim Ausstrahlen verwenden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top