service和Thread的区别和场景

Thread:程序执行的最小单元,它是分配CPU的基本单元

Thread生命周期
1.新建
2.就绪
3.运行
4.死亡
5.阻塞
Thread致命缺点:无法控制!!!

场景:
Thread需要连续不停的每隔一段时间就要连接一次服务器做某种同步,退出界面,它还在运行

Service:是Android的一种机制,服务是运行在主线程上

Service生命周期
1.onCreat
2.onStart
3.onDestroy
4.onBind
5.onUnbind

1.starService
2.stopService
3.bindService
4.unbindService


service和Thread的区别和场景_第1张图片
WeChat96a53d9ca836dbce44b83fb129a0acc8.png

IntentService

不建议在Service中进行耗时操作。
IntentService是继承Service,在onCreat中创建HandlerThread并开启,
从而获取looper,然后创建ServiceHandler(继承自handler)。

在onStart方法中创建message对象并sendMessage发送给handler,
在onHandleIntent方法来处理,是唯一需要实现的方法,最后调用stopSelf()来结束服务。

总结:
1.IntenService是继承并处理异步请求的一个类
2.内有一个工作线程来处理耗时操作
3.IntenService内部则是通过消息的方式发送给HandlerThread的,然后由Handler中的Looper来处理消息

拓展:
1.先启动服务再绑定服务
2.先绑定服务再启动服务
(小结:
1.启动服务的优先级比绑定服务高
2.服务在其托管进程的主线程中运行---UI线程)

你可能感兴趣的:(service和Thread的区别和场景)