AsyncTask、Service、IntentService、Thread的使用和区别
AsyncTask、Service、IntentService、Thread的使用和区别
网上看到有这么一个表:
英语匮乏,我找翻译。然后大概的意思如下(不对的地方劳烦指出一下):
Service | Thread | IntentService | AsyncTask | |
使用条件 |
1. 没有UI任务; |
1.长时任务; |
1.通常没有与主线程通信的长时任务; |
1.需和主线程通信的长任务; |
启用方式 | 调用onStartService方法 | 调用start方法 | Intent | 调用execute方法 |
调用方 | 任何线程 | 任何线程 | 主线程(主线程调用Intent来触发IntentService任务) | 主线程 |
运行于()线程 | 主线程 | 独立线程 | 独立的工作线程 | 工作线程,但是,在过程中可以调用主线程方法进行通知进度 |
局限、缺点 | 阻塞主线程 |
- 手动管理线程 - 代码可读性差 |
- 不支持并行任务 - 多任务时将会排队 |
- 仅能执行一次(不能循环执行) - 必须主线程创建和执行 |