Rozhodl jsem se za vámi přijít, protože jste odborníci
za prvé i am not expert
a také i am not knowledgeable
můžete najít více odborníků než já, ale toto je můj názor hope to give you some help
.
nejprve zapomeňte použít AsyncTask
ke stažení, protože se musí používat pro krátké úlohy na pozadí, které nejsou jako ty vaše. Myslím, že množství souborů, které chcete stáhnout, je dost velké. (Myslím, že ano)
zkontrolujte downloadmanager
google, abyste viděli, jak to funguje, může vám to pomoci.
http://developer.android.com/reference/android/app/DownloadManager.html
http://blog.vogella.com/2011/06/14/android-downloadmanager-example/
pokud chcete použít service
použijte unbound service
protože nechcete, aby byla služba zničena Androidem nebo uživatelem, když uživatel zavře aplikace, že? Myslím, že chcete svá data získat jakýmkoli způsobem.
aby byl efektivní, doporučuji tyto kroky:
A. Přečtěte si uklidňující službu a načtěte data zákazníků
b. když získáte zákaznická data, proveďte:
-
vytvořte další službu nebo vlákno pro čtení uklidňující služby pro načtení dat článků
-
Analyzujte odpověď na objekty Json ve vaší staré službě nebo vláknu
nyní máte 2 služby nebo vlákna, která běží souběžně, takže postupujte podle kroků, které jsou zřejmé insert
parse
a tak u každé služby nebo vlákna.
proč nekombinuji a a d? protože si myslím, že uživatel nerad čeká mnoho času za ukazatelem průběhu stahování.
pro vložení dat do databáze použijte transaction
a doporučuji vám použít:
http://greendao-orm.com/
je to efektivnější ORM
než ostatní pro databázi a získáte zdarma implementaci db.
Pokud je aktivita, která službu spustila, výslovně zrušena nebo je skryta jinou aktivitou, služba musí mít způsob, jak dát uživateli vědět, že proces skončil. Jak bych to mohl implementovat?
použijte oznámení:
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
Zatímco celé to dlouhé zpracování probíhá na pozadí, budu muset ukázat nějaký indikátor (ProgressDialog) To je důvod, proč jsem se rozhodl pro použití Bound Service`
jak mohu aktualizovat uživatelské rozhraní z nevázané služby?`
Použijte LocalBroadCastManager
, nebo obecně BroadCastReciever
Uživatelské rozhraní aktivity aktualizace Androidu ze služby
V J2ME jsem udělal něco podobného, a když vložím něco jako 6 kroků, které jsem zmínil výše, všechny se provedou postupně, to znamená jeden po druhém. Je to stejné v Androidu?
to závisí na vašich krocích, pokud budete postupovat podle mého nápadu, spustíte concurrently
a pokud spustíte svůj nápad, spustíte ho sequentially
.
Hodně štěstí.