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请求所对应的任务。


Android回顾之Service_第1张图片

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

你可能感兴趣的:(Android回顾之Service)