What is the difference between Service, Async Task & Thread. If i am not wrong all of them are used to do some stuff in background. So, how to decide which to use and when?
Probably you already read the documentation description about them, I won't repeat them, instead I will try to give answer with my own words, hope they will help you.
Service is like an Activity but has no interface. Probably if you want to fetch the weather for example you won't create a blank activity for it, for this you will use a Service.
A Thread is a Thread, probably you already know it from other part. You need to know that you cannot update UI from a Thread. You need to use a Handler for this, but read further.
An AsyncTask is an intelligent Thread that is advised to be used. Intelligent as it can help with it's methods, and there are two methods that run on UI thread, which is good to update UI components.
I am using Services, AsyncTasks frequently. Thread less, or not at all, as I can do almost everything with AsyncTask.
Hey Pentium10, why would I use an AsyncTask inside a service? Is it because I can right results directly to the UI or maybe because even a service can throw a "not responding"-error if it is idle with a long operation as fetching data from the server is? So if I start an Activity which is called e.g. Weatherfetcher with which I would like to fetch current weather data from a server, I would first implement a service (started by the Main Activity) which shall poll the current data from the server frequently and in this service I would implement an AsyncTask for actual fetching the data and posting the results directly to the activties UI?
Maybe my questions are a littel hidden/not quite clear in the text so I'll try to sum them up:
1. What is the use of an async task inside a service?
2. Is the intention of asyncTask to prevent "not responding"-errors, which may happen to services as activities without an UI (this is an assumption, please correct me if I that can not happen)?
3. If I write an activity with an UI, why would I use services in the first place if I got something like asyncTask?
I'm really curious about this, so I'd really appreactiate your answer! Thx