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是在工作线程,所以还是需要开启子线程来做一些耗时操作。

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

推荐阅读更多精彩内容

  • 前言:本文所写的是博主的个人见解,如有错误或者不恰当之处,欢迎私信博主,加以改正!原文链接,demo链接 Serv...
    PassersHowe阅读 5,276评论 0 5
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-androi...
    eddy_wiki阅读 8,526评论 0 20
  • 转载注明出处:http://www.jianshu.com/p/a1d3d9693e91 1. 简介 与前一篇An...
    王三的猫阿德阅读 6,012评论 1 9
  • [文章内容来自Developers] Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。...
    岳小川阅读 4,332评论 0 7
  • 我在清晨读你 抚过你微润的发梢 野猫在窗外嘶叫 你在我怀中醒来
    钟语爱香瓜阅读 877评论 0 1