service thread 使用场景

两者并没有什么关系。先说一下为什么会有Service这个组件,为什么会有它和Thread自身缺点有关系,因为只使用Thread无法解决问题。我们知道他们两个都是在后台执行任务,都没有界面。
我们在使用Thread启动一个子线程来干一些费时的操作时,这个子线程一般是由Activity来启动执行的(假如说没有Service组件),而Thread子线程 的运行是独立于 Activity 的,那么当一个 Activity 被 finish 之后,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 并不会结束,它会一直执行下去。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用,你就无法对其进行控制。
另一方面,你也没有办法在不同的 Activity 中对同一Thread 进行控制。
举个例子:如果你的 Thread 需要不停地过一段时间就要连接服务器一次做某种同步,该 Thread 需要在 Activity 退出后也在运行。这个时候你就没有办法在您启动的 Activity 里面控制之前Activity创建的 Thread,这样这个子线程就相当于一个“野线程”了,你无法对其进行状态监听和控制。

那这个时候Service的价值和意义就体现出来了,你可以创建并启动一个 Service ,在 Service 里面就可以一直创建,运行并控制该 Thread了,不用担心Service退出之后无法再控制Thread,因为Service会一直运行在后台,它没有Activity的界面,不会“显式”的退出。这样便解决了上面使用Thread存在的问题。


Service和Thread的常用使用和区别



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值