Android 艺术之旅 - 进程间通讯 - 2 Messager

本文详细探讨了Android中的Service特性,强调Service并非运行在子线程,区分了Service与IntentService的区别。讲解了Service的启动方式、生命周期方法如onCreate、onStartCommand和onDestroy,指出onStartCommand在主线程中执行,不适合耗时操作。同时,提到了IntentService的onHandleIntent在子线程中运行,确保了非阻塞。最后,文章介绍了Messager在进程间通讯中的作用。
摘要由CSDN通过智能技术生成

 

1: 首先第一点Service 不是子线程,这个一定要明确的,这个service是在后台运行,这里所谓的后台其实指的是没有界面而已

 

2: Service 分文Service 和IntentService(自带子线程)

 

3: Service的启动方式包含startService(和startActivity很类似) 和bindService,

通过startService启动的Service被删除的方法有哪两种?stopSelf() stopService

 

4: Service 和Messager的关系

 

5: onBind 方法:如果其他应用程序组件和服务进行绑定的时候,会自动回调这个方法, 返回null 或者是抛出异常不允许绑定服务

 

onCreate方法:当服务第一次启动之前,有系统来创建服务,并且调用这个方法,不管启动多少次,都只运行一次

 

onStartCommand方法:在每次执行startService的时候,都会调用,那么bindService的时候呢?应该是不调用的

onStartCommand方法是由主线程调用的,千万不要执行耗时的操作,可以在子线程中执行耗时操作

打印出当前的Thread.currentThread().toString(). 就会发现,的确是主线程调用的,所以千万不要执行耗时操作。

kodulf.servicedemo D/kodulf: onStartCommand: GOODThread[main,5,main] 

kodulf.servicedemo D/kodulf: startServiceOne: Thread[main,5,mai

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值