I have a sync service using AsyncTask. Due to its objective (sync), I prefer to block the user and show him a progressdialog. (And error if exists)
Another difficulty is that I have about 8 AsyncTask running simultaneously. So I can’t do a simple call to the progress dialog page when I begin the work and a close when it’s finished. It’s more complex.
Can someone help me with that task ?
Regards
In the first place the point of the Service is that you don’t need/want to block user to do stuff because it happens in the background. To that aspect, a Service doesn’t have a UI thread, so if you want a progress bar shown in your Activity you’ll have to send an Intent back to your activity (using broadcast receivers), such that you can switch the progress bar on/off and do other magic.
I would not recommend blocking the user though, because the tasks you are doing might take a very long time, giving a nasty user experience. You might even want to reconsider using a Service at all (if the data you are fetching is only used locally; for example fetch the latest twitter messages or something) and just go with an ASyncTask in your Activity, unless the data your Service fetches is used in other parts of your app as well (widgets for example) and you want that data available even if the activity isn’t running.