- AsyncTask tak boleh execute AsyncTask yg lain.
- IntentService tak boleh panggil IntentService yg lain
-AsyncTask, IntentService, Service & Thread boleh panggil Service atau Thread
#(Rujuk row 'Triggered From')
- IntentService tak boleh panggil IntentService yg lain
-AsyncTask, IntentService, Service & Thread boleh panggil Service atau Thread
#(Rujuk row 'Triggered From')
Service | Thread | IntentService | AsyncTask | |
---|---|---|---|---|
When to use ? | Task with no UI, but shouldn't be too long. Use threads within service for long tasks. | - Long task in general. - For tasks in parallel use Multiple threads (traditional mechanisms) | - Long task usually with no communication to main thread. (Update)- If communication is required, can use main thread handler or broadcast intents[3] - When callbacks are needed (Intent triggered tasks). | - Long task having to communicate with main thread. - For tasks in parallel use multiple instances OR Executor [1] |
Trigger | Call to method onStartService() | Thread start() method | Intent | Call to method execute() |
Triggered From (thread) | Any thread | Any Thread | Main Thread (Intent is received on main thread and then worker thread is spawed) | Main Thread |
Runs On (thread) | Main Thread | Its own thread | Separate worker thread | Worker thread. However, Main thread methods may be invoked in between to publish progress. |
Limitations / Drawbacks | May block main thread | - Manual thread management - Code may become difficult to read | - Cannot run tasks in parallel. - Multiple intents are queued on the same worker thread. | - one instance can only be executed once (hence cannot run in a loop) [2] - Must be created and executed from the Main thread |
ref: http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html
No comments:
Post a Comment
Terima kasih