SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Empfohlene Methode / Reihenfolge zum Lesen von Daten aus einem Webdienst, Analysieren dieser Daten und Einfügen in eine SQLite-Datenbank

Ich habe mich entschieden, zu Ihnen zu kommen, weil Sie die Experten sind

zuerst i am not expert und auch i am not knowledgeable Sie können mehr Experten finden als mich, aber das ist meine Meinung hope to give you some help .

Vergessen Sie zunächst, AsyncTask zu verwenden herunterzuladen, weil es für kurze Hintergrundjobs verwendet werden muss, die nicht wie deine sind. Ich denke, die Menge an Dateien, die Sie herunterladen möchten, ist ziemlich groß. (Ich denke schon)

überprüfen Sie downloadmanager von Google, um zu sehen, wie es funktioniert, es kann Ihnen helfen.

http://developer.android.com/reference/android/app/DownloadManager.html

http://blog.vogella.com/2011/06/14/android-downloadmanager-example/

wenn Sie service verwenden möchten Verwenden Sie unbound service weil Sie nicht möchten, dass der Dienst von Android oder dem Benutzer zerstört wird, wenn der Benutzer die Apps schließt, oder? Ich denke, Sie wollen Ihre Daten irgendwie bekommen.

Um effizient zu sein, empfehle ich diese Schritte:

a. Lesen Sie einen erholsamen Dienst, um die Kundendaten abzurufen

b. Wenn Sie Kundendaten erhalten, tun Sie Folgendes:

  • Erstellen Sie einen weiteren Dienst oder Thread, um einen Restful-Dienst zu lesen, um die Artikeldaten abzurufen

  • Analysieren Sie die Antwort auf Json-Objekte in Ihrem alten Dienst oder Thread

Jetzt haben Sie 2 Dienste oder Threads, die gleichzeitig ausgeführt werden, also folgen Sie den Schritten, die offensichtlich insert sind parse und so für jeden Dienst oder Thread.

warum kombiniere ich nicht a und d? weil ich denke, dass Benutzer nicht gerne lange hinter dem Download-Fortschrittsbalken warten.

Um Ihre Daten in die Datenbank einzufügen, verwenden Sie transaction und ich empfehle Ihnen die Verwendung von:

http://greendao-orm.com/

es ist effizienter ORM als andere für die Datenbank und Sie erhalten keine db-Implementierung.

Wenn die Aktivität, die den Dienst gestartet hat, explizit abgebrochen oder durch eine andere Aktivität ausgeblendet wird, muss der Dienst eine Möglichkeit haben, den Benutzer darüber zu informieren, dass der Prozess beendet ist. Wie könnte ich das umsetzen?

Benachrichtigung verwenden:

http://developer.android.com/training/notify-user/build-notification.html

http://www.tutorialspoint.com/android/android_notifications.htm

http://www.vogella.com/tutorials/AndroidNotifications/article.html

Während diese ganze lange Verarbeitung im Hintergrund stattfindet, muss ich eine Art Indikator (einen ProgressDialog) zeigen. Das ist der Grund, warum ich mich für die Verwendung eines gebundenen Dienstes entschieden habe`

Wie kann ich die Benutzeroberfläche eines ungebundenen Dienstes aktualisieren?`

Verwenden Sie einen LocalBroadCastManager , oder allgemein BroadCastReciever

Benutzeroberfläche für Android-Aktualisierungsaktivitäten vom Dienst

In J2ME habe ich etwas Ähnliches gemacht, und wenn ich so etwas wie die oben erwähnten 6 Schritte einfüge, werden alle nacheinander ausgeführt, dh einer nach dem anderen. Ist es das gleiche in Android?

Dies hängt von Ihren Schritten ab. Wenn Sie meiner Idee folgen, führen Sie concurrently aus und wenn Sie Ihre Idee ausführen, werden Sie sequentially ausführen .

Viel Glück.