Android回顾之Service

1.两种启动方式:startService & bindService


2.区别:(1)startService,启动的组件和service本身无联系,只有在service本身调用stopSelf或者启动方调用stopService时,service才会终止;

 (2)而bindService,启动的组件可以通过回调获取service实例,启动方和service双方进行了绑定,当启动方销毁时,service会自动启动unBind,当所有绑定都解除时,service才会销毁。

生命周期:(1)startService,onCreate -> service run ->onDestry;

(2)而bindService,onCreate -> onBind ->client bindService -> onUnBind ->onDestry


3.intentService:是service的一个子类,用来处理异步操作。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService的方式发送过来的)所对应的任务,这样以免事务处理阻塞主线程。执行完所一个Intent请求对象所对应的工作之后,如果没有新的Intent请求达到,则自动停止Service;否则执行下一个Intent请求所对应的任务。



4.service的onCreate回调中是不能做耗时操作的,因为onCreate是在工作线程,所以还是需要开启子线程来做一些耗时操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容