Android之Service

对Android的Service组件写个小结

Service

Service有几种启动方式

Service是一个专门在后台处理长时间任务的Android组件,它没有UI。它有两种启动方式,startService和bindService,结束用stopService和unBindService。

两种方式的区别

  1. startService只是启动Service,启动它的组件(如Activity)和Service并没有关联,只有当Service调用stopSelf或者其他组件调用stopService服务才会终止。
  2. bindService方法启动Service,其他组件可以通过回调获取Service的代理对象和Service交互,而这两方也进行了绑定,当启动方销毁时,Service也会自动进行unBind操作,当发现所有绑定都进行了unBind时才会销毁Service。

生命周期比较

Service的onCreate回调函数可以做耗时的操作吗?

不可以,Service的onCreate是在主线程(ActivityThread)中调用的,耗时操作会阻塞UI,如果你只需要在当前界面去做一些耗时操作,界面退出或改变时,工作也要停止,那么这时直接使用Thread(或者AsyncTask,ThreadHandler)会更合适你。

坚持原创技术分享,您的支持将鼓励我继续创作!