Jeg besluttede at komme til dig, fordi du er eksperterne
først i am not expert
og også i am not knowledgeable
du kan finde flere eksperter end mig, men dette er min mening hope to give you some help
.
først og fremmest glem at bruge AsyncTask
at downloade, fordi det skal bruges til korte baggrundsjob, der ikke er som dine, jeg tror, at mængden af fil, du vil downloade, er ret stor. (det tror jeg)
tjek downloadmanager
af google for at se, hvordan det virker, kan det hjælpe dig.
http://developer.android.com/reference/android/app/DownloadManager.html
http://blog.vogella.com/2011/06/14/android-downloadmanager-example/
hvis du vil bruge service
brug unbound service
fordi du ikke ønsker, at tjenesten skal ødelægges af Android eller bruger, når brugeren lukker apps, gør du? Jeg tror, du vil have dine data på nogen måde.
For at være effektiv anbefaler jeg disse trin:
en. Læs en afslappende service for at hente kundedata
b. når du får kundedata gør :
-
opret en anden tjeneste eller tråd for at læse en afslappende tjeneste for at hente artikeldataene
-
Parse svaret til Json Objects på din gamle tjeneste eller tråd
nu har du 2 tjenester eller tråde, der kører samtidigt, så følg de trin, der åbenlyst insert
parse
og så på hver tjeneste eller tråd.
hvorfor kombinerer jeg ikke a og d? fordi jeg tror, at brugeren ikke kan lide at vente meget tid bag download-statuslinjen.
Brug transaction
for at indsætte dine data i databasen og jeg anbefaler, at du bruger:
http://greendao-orm.com/
det er mere effektivt ORM
end andre til database og du får fri fra db implementering.
Hvis den aktivitet, der startede tjenesten, udtrykkeligt er annulleret eller er skjult af en anden aktivitet, skal tjenesten have en måde at lade brugeren vide, at processen er afsluttet. Hvordan kunne jeg implementere det?
brug notifikation:
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
Mens al denne lange behandling finder sted i baggrunden, bliver jeg nødt til at vise en slags indikator (en ProgressDialog) Dette er grunden til, at jeg valgte at bruge en bundet tjeneste`
hvordan kan jeg opdatere brugergrænsefladen fra en ubundet tjeneste?`
Brug en LocalBroadCastManager
, eller generelt BroadCastReciever
Android-opdatering af aktivitets-UI fra tjenesten
I J2ME har jeg gjort noget lignende, og når jeg sætter noget som de 6 trin, jeg nævnte ovenfor, udføres de alle sekventielt, dvs. det ene efter det andet. Er det det samme i Android?
dette afhænger af dine trin, hvis du følger min idé, kører du concurrently
og hvis du kører din idé, kører du sequentially
.
Held og lykke.