Service

以前对Service总是有点不理解,官方指南上来就说什么Android四大组件之一,用来干后台耗时操作。然后又说Service本身运行在主线程,如果需要耗时操作还需要在Service中创建Thread做耗时操作,bulabula(╯□╰)。既然Thread可以直接干后台的工作我何苦在你Service中创建Thread干后台工作。
我相信很多同学也都有这种疑问,其实之所以会有这种疑问,我觉得是大家被这句不负责任或者不严谨的话给洗脑了,只要一说到Service就拿这句话来介绍,来忽悠。
这句话其实含义有两层:

  • Service是一个“组件”。在设计上跟另一个组件Activity的区别是它是看不见的,即如果需要看不见的(也就是它说的后台的)操作,那就用Service吧。Android系统保证它的生命周期,它不会像Activity那样只要界面消失了(back掉或者home掉)就有死掉的危险。
  • Service也只是一个组件,它不是Thread,它不重新创建线程,那些你在Service生命周期方法中做的操作都是运行在主线程的,除非你主动放到了其他线程中。很多事情你终归还是要放到Thread中,但Thread放到Service中就能保证其运行周期。因为Android系统是可以保证Service生命周期的,也就可以保证Thread中long-running工作的稳定。另外Service生命周期Api又可以灵活的控制,从而灵活控制后台工作的运行。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容