sql >> Databasteknik >  >> RDS >> SQLite

Rekommenderat sätt / beställning att läsa data från en webbtjänst, analysera den data och infoga den i en SQLite db

Jag bestämde mig för att komma till dig eftersom du är experterna

först i am not expert och även i am not knowledgeable du kan hitta fler experter än jag men det här är min åsikt hope to give you some help .

Glöm först och främst att använda AsyncTask att ladda ner eftersom det måste användas för korta bakgrundsjobb som inte liknar ditt. Jag tror att mängden fil du vill ladda ner är ganska stor.(jag tror det)

kontrollera downloadmanager av google för att se hur det fungerar kan det hjälpa dig.

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

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

om du vill använda service använd unbound service eftersom du inte vill att tjänsten ska förstöras av Android eller användare när användaren stänger apparna eller hur? Jag tror att du vill få din data på något sätt.

för att vara effektiv rekommenderar jag dessa steg:

a. Läs en vilsam tjänst för att hämta kunddata

b. när du får kunddata gör :

  • skapa en annan tjänst eller tråd för att läsa en vilsam tjänst för att hämta artikeldata

  • Analysera svaret på Json Objects på din gamla tjänst eller tråd

nu har du 2 tjänster eller trådar som körs samtidigt så följ stegen som är uppenbara insert parse och så, på varje tjänst eller tråd.

varför kombinerar jag inte a och d? eftersom jag tror att användaren inte gillar att vänta länge bakom nedladdningsförloppsindikatorn.

för att infoga dina data i databasen använd transaction och jag rekommenderar att du använder:

http://greendao-orm.com/

det är mer effektivt ORM än andra för databas och du blir fri från db-implementering.

Om aktiviteten som startade tjänsten uttryckligen avbryts eller döljs av en annan aktivitet, måste tjänsten ha ett sätt att låta användaren veta att processen har avslutats. Hur kunde jag implementera det?

använd avisering:

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

Medan all denna långa bearbetning äger rum i bakgrunden måste jag visa någon sorts indikator (en ProgressDialog) Detta är anledningen till att jag valde att använda en bunden tjänst`

hur kan jag uppdatera användargränssnittet från en obunden tjänst?`

Använd en LocalBroadCastManager , eller i allmänhet BroadCastReciever

Android uppdaterar aktivitetsgränssnittet från tjänsten

I J2ME har jag gjort något liknande, och när jag lägger något i stil med de 6 stegen jag nämnde ovan exekveras alla sekventiellt, det vill säga en efter en. Är det samma i Android?

detta beror på dina steg, om du följer min idé kör du concurrently och om du kör din idé kommer du att köra sequentially .

Lycka till.



  1. Hur använder (installerar) dblink i PostgreSQL?

  2. Inkrementell statistik insamling i 11g

  3. Hämta java.sql.SQLException:Operation inte tillåten efter att ResultSet stängts

  4. Varför tillåter MySQL grupp efter frågor UTAN aggregatfunktioner?