Some summaries
There are several methods mentioned above that are good practices but I thought I might sum them up with short explanations. Below are some of the most popular libraries being used currently for http networking, asynchronous work / threading, and caching.
My current project (just preferences)
I personally am currently using Otto, Loaders, Volley, Ormlite, and a network stack based on Apache and Service
s. I do hope to replace, the network stack at some point with either Volley, Retrofit, and maybe eventually Robospice.
I personally very much like Otto and Volley
RoboSpice (Modular)
- https://github.com/octo-online/robospice
- http://www.youtube.com/watch?v=ONaD1mB8r-A
- a plugin / modular approach to long-running tasks
- this is like the "swiss-army-knife" of libraries, but you need to know what each tool does.
- Handles REST calls
- persists data through orientation and other changes
- can handle disk and memory caching )
- works with various HTTP libraries and persistence libraries (Gson, Jackson, Spring, OkHttp, and many of the below libraries)
- beta for Ormlite support, I think
Retrofit (REST)
Volley (Networking data & Images)
Picasso (images)
Loaders (Android)
- well supported
- persist through orientation change and save/load of fragment state
- can be difficult to get right
- no caching
AsyncTask (Android)
- simple way for background work from the UI thread
- must be canceled and be careful about tasks that return after an activity or fragment is torn down.
Otto (event bus)
- https://github.com/square/otto
- Event bus that makes a-sync work between components and fragments easy
- Very powerful
@Produce
ability retains the last event and can produce it on demand for any new interested subscribers to the bus
Headless Fragments (?)
- I personally have never seen this used other than Vogella's tutorials, so I'm not sure on this one.
Service (Android)
- The old school way
- ultimate control, you must do everything yourself
- usually used with Appache or HURL client and
- pass Parcels around via Intents
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…