I am currently developing a application which is capable of locating nearby bus and train stops and display departure boards for the users.
I have a Activity, let us call it Activity1 that displays the 20 nearest stops. When one of these are clicked, Activity2 is opened and the departure-board is loaded and shown.In both cases, I am using AsyncTasks for data retrieval and parsing in background.
So I would like some kind of mechanism (Thread or Service) that runs parallel with the UI Thread and loads these data. The problem is that this mechanism should be accessibly from both the activities. What is the best approach to achieve this?
I thought about creating a static class SideLoader with a Runnable object and maybe a public list of loaded departure boards that is updated contentiously when this Runnable object are executed. Is this seam like a good practice or what?
You might also look at the following video from the Google I/O conference on doing REST queries asynchronously and storing the data locally for use. Excellent description of best practices that you may learn a lot from. Talks about services, asynctask, contentproviders, and more:
http://www.youtube.com/watch?v=xHXn3Kg2IQE
And to expound on that thought - You might use a ContentProvider to access the information stored in a SQLLite database on the device. Use a service to fetch the data online and store it in the database through the contentprovider. Your activities access the contentprovider to retrieve the data.
I would look at building an Android Service to manage your background tasks. Each activity could bind to the service and communicate with it as needed.
http://developer.android.com/reference/android/app/Service.html
加载中,请稍侯......
精彩评论