Wie man eine persistente Warteschlange auf Android realisiert

7

Meine Anwendung benötigt eine Datenstruktur, die einer Queue ähnlich ist: Daten hineinlegen, Daten davon empfangen, FIFO-ähnlich. Mit Daten meine ich zunächst einfache Strings, später vielleicht komplexere Objekte. Die Sache ist, dass die Warteschlange und ihr Inhalt beständig sein sollten, unabhängig davon, was Android macht. Wenn die Anwendung geschlossen und erneut geöffnet wird (oder sogar Neustarts von Android), sollte die Warteschlange den gleichen Status und die gleichen Daten haben, die sie vor dem Schließen der Anwendung hatte.

Ich denke, die Warteschlange muss eine Art von Speicher unter der Haube verwenden, vorzugsweise den internen Speicher des Geräts. Vielleicht könntest du ein Brainstorming machen, wie du das realisieren kannst. Die Warteschlange muss nicht unbedingt in meiner Anwendung laufen, es könnte auch eine Art von lose gekoppeltem Hintergrund-Dienst sein, wenn das in Android möglich ist (aber privat für meine Anwendung).

    
ceran 27.01.2012, 12:50
quelle

4 Antworten

7

Ich empfehle, eine Tabelle in Sqlite zu verwenden. Ich würde mein eigenes SqliteQueue erstellen, das die Warteschlangenschnittstelle implementiert. Offer würde einen Eintrag zur Tabelle hinzufügen. Poll würde einen Eintrag zurückgeben und ihn aus der Tabelle entfernen. Für komplexere Objekte können Sie GSON verwenden, um das Objekt in eine JSON-Zeichenfolge zu konvertieren oder die JSON-Zeichenfolge in eine zu konvertieren Objekt.

    
Frohnzie 27.01.2012, 13:40
quelle
8

Möge quadratisch eine gute Wahl sein.

  

QueueFile ist ein blitzschneller transaktionaler dateibasierter FIFO. Hinzufügen und Entfernen von einer Instanz ist eine O (1) -Operation und ist atomar. Schriftsätze sind synchron; Daten werden auf den Datenträger geschrieben, bevor eine Operation zurückgegeben wird. Die zugrunde liegende Datei ist so strukturiert, dass sie Prozess- und sogar Systemabstürzen standhält. Wenn während einer mutierenden Änderung eine E / A-Ausnahme ausgelöst wird, wird die Änderung abgebrochen.

    
fxp 02.09.2013 18:52
quelle
3

Das ist eine gute Bibliothek von Path:

Ссылка

"Eine speziell für Android geschriebene Jobwarteschlange zur einfachen Planung von Jobs (Aufgaben), die im Hintergrund ausgeführt werden, um die UX- und Anwendungsstabilität zu verbessern."

Und bieten viele Funktionen wie Priorität, Netzwerkprüfung, Rückrufe usw.

    
Prakash 27.03.2015 18:17
quelle
1

Ich bin ziemlich hübsch, es gibt keine solchen Datenstrukturen in der Java-API, aber es sollte kein Problem bei der Implementierung Ihrer eigenen Art von Queue geben. Werfen Sie einen Blick auf dieses Dokument, das die Beschreibung der Datenspeichermechanismen in Android enthält. Ich würde vorschlagen, SharedPreferences zu verwenden, aber Sie können wählen, was am besten zu Ihrer Anwendung passt. Sie können eine der Java-Sammlungen erweitern, die die Schnittstelle Queue implementiert, und Ihre Persistenzmechanismen mithilfe der Speicheransätze von Android hinzufügen. Hoffe, das hilft.

    
Egor 27.01.2012 12:58
quelle

Tags und Links