startService 方法启动Service,启动它的组件(如Activity)和Service并没有关联,只有它自己主动调用方法才能终止服务。
bindService方法启动Service,Bind它的组件可以通过回调获取Service的代理对象与Service交互,同时他俩进行了绑定!当启动方销毁时,Service也会自动进行unBind操作,然后销毁服务。
两种模式生命周期如下
从生命周期里来看,由于Oncreate()方法是执行mainThread中,即有可能会造成线程阻塞进而ANR!
执行耗时操作一般情况下一般人想到的是开线程然后Handle更新UI数据等等;今天说的是Service,那就不得不提IntentService类,我们可以继承IntentService类,调用方式与普通服务组件一模一样!好处1:当任务执行完,IntentService会自动停止,而不需要我们手动去调用stopSelf()。好处2:可以启动IntentService多次,而每一个耗时操作会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个!