pso*_*los 18 service multithreading android
我对IntentService和Service之间的区别感到有点困惑.我知道IntentService有一个工作队列,但在一个服务上使用多个IntentService有什么好处?
这是我的意思的一个例子.假设我希望我的应用程序从3个来源中提取数据.我应该启动一个运行三个线程的服务,每个线程从各自的源中拉出来吗?或者我应该启动三个单独的IntentServices?
Sni*_*las 11
IntentService只是一个方便的类,用于编写生产者 - 消费者模式中的工作者服务.它们是旨在连续执行各种任务然后停止的服务.服务不一定是IntentServices,例如必须保持活动的服务,例如守护进程.
因此,您应该想知道您的服务是否接近工作线程,如果是,请使用IntentServices,否则只从服务派生.
您的第二个问题是是否将所有3项服务分组为3合1服务.答案是,它取决于您如何使用数据源:如果您完全使用它们,则将它们分组到一个服务中.如果单独使用它们,您可以为每个服务构建一个服务,如果只使用一个数据源而不使用另一个数据源,则希望提供更轻松的服务.但是如果你在服务中使用所有3个数据源,那么它将比使用单个服务更重.
小智 6
我的理解是,intentService和Service之间的区别在于,intentService将生成一个工作线程来运行它,而一个Service在它的托管进程的主线程中运行.此外,当工作完成时,intentService将自行停止,而Service将继续运行直到stopSelf或调用stopService.
如果3个数据源需要彼此共享信息,则将它们全部放在同一个服务中,否则将它们分开,因为如果一个数据源关闭,它将运行胖服务,而不是仅运行单个服务.
| 归档时间: |
|
| 查看次数: |
7281 次 |
| 最近记录: |