Ik besloot naar je toe te komen omdat jij de experts bent
eerst i am not expert
en ook i am not knowledgeable
je kunt meer deskundige mensen vinden dan ik, maar dit is mijn mening hope to give you some help
.
vergeet allereerst AsyncTask
. te gebruiken om te downloaden omdat het moet worden gebruikt voor korte achtergrondtaken die niet zoals die van jou zijn. Ik denk dat de hoeveelheid bestanden die je wilt downloaden behoorlijk groot is. (ik denk van wel)
controleer downloadmanager
van google om te zien hoe het werkt, kan het u helpen.
http://developer.android.com/reference/android/app/DownloadManager.html
http://blog.vogella.com/2011/06/14/android-downloadmanager-example/
als je gebruik wilt maken van service
gebruik unbound service
omdat u niet wilt dat de service door Android of de gebruiker wordt vernietigd wanneer de gebruiker de apps sluit? ik denk dat je je gegevens op welke manier dan ook wilt hebben.
om efficiënt te zijn raad ik deze stappen aan:
a. Lees een rustgevende service om de klantgegevens op te halen
b. wanneer u klantgegevens ontvangt:
-
maak een andere service of thread om een rustgevende service te lezen om de artikelgegevens op te halen
-
Parseer de reactie op Json Objects op uw oude service of thread
nu heb je 2 services of threads die gelijktijdig worden uitgevoerd, dus volg de stappen die voor de hand liggen insert
parse
en zo, op elke service of thread.
waarom combineer ik a en d niet? omdat ik denk dat gebruikers niet graag lang wachten achter de voortgangsbalk voor downloaden.
om uw gegevens in de database in te voegen, gebruik transaction
en ik raad je aan het volgende te gebruiken:
http://greendao-orm.com/
het is efficiënter ORM
dan andere voor database en u krijgt geen db-implementatie.
Als de activiteit waarmee de service is gestart expliciet wordt geannuleerd of wordt verborgen door een andere activiteit, moet de service een manier hebben om de gebruiker te laten weten dat het proces is voltooid. Hoe zou ik dat kunnen implementeren?
gebruik melding:
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
Terwijl al deze lange verwerking op de achtergrond plaatsvindt, moet ik een soort indicator (een ProgressDialog) tonen. Dit is de reden waarom ik heb gekozen voor het gebruik van een Bound Service`
hoe kan ik de gebruikersinterface updaten van een niet-gebonden service?`
Gebruik een LocalBroadCastManager
, of in het algemeen BroadCastReciever
Gebruikersinterface voor Android-updateactiviteit van service
In J2ME heb ik iets soortgelijks gedaan, en als ik zoiets als de 6 stappen zet die ik hierboven heb genoemd, worden ze allemaal opeenvolgend uitgevoerd, dat wil zeggen, de een na de ander. Is het hetzelfde in Android?
dit hangt af van je stappen, als je mijn idee volgt, voer je concurrently
uit en als u uw idee uitvoert, voert u sequentially
uit .
Veel succes.