Service 在Android官方定义是指没有图形化界面在后台执行耗时操作的应用组件;
下面贴上一张Service的生命周期图
这是两种启动服务(Service)的方式,Service有两种状态 启动和绑定
虽然说Service是可以在后台执行耗时操作,但是直接写耗时代码依然会抛出ANR的错误,这里引申出了服务和线程的区别
服务在后台执行耗时操作要借助线程 但是和直接借用线程执行最大的区别就是线程一旦结束不能再次执行但是服务死亡可以
重新激活。
另外Service还有一个子类IntentService
Service和IntentService的区别在于Service是无序队列执行多个操作同时进行而IntentService是有序队列把多个Itent请求
假如一个队列一个一个执行;
关于停止服务,在非绑定的Service在完成任务的时候为了不占用资源最好将服务停止。可以通过自身调用StopSelf()停止,也可以通过
其他组件StopService()来停止;绑定的Service可以通过OnUnBind()来停止Service;