初学者自用学习笔记,以下部分大多都是书中原话或者自己的理解。如有错误,还望指正。
一、service是什么?
Service和Activity、BroadCastRecevicer、Content provider并称为android的四大组件。主要有两个目的
(1)为了方便后台运行。比如后台播放音乐,后台下载等。
(2)跨进程通信。
二、service的生命周期
按照service可以按两种启动方式,划分成两种生命周期。
Service从启动到销毁总共只经历三个阶段:创建、开始、销毁。
1、startService()
三个阶段会分别调用onCreate(),onStartCommand()【或者 onStart() 主要区别就是在2.0版本以下用onStart()】、onDestroy()。
一个服务可以多次调用startService,但是只会调用一次onCreate(),多次调用onStartCommand()。
采用startService开始的服务,只能用stopService结束。它的生命周期不受activity的限制,只有手动调用stopService时,才能结束服务。
2、bindService()
采用bindService()开启的服务,会依次调用onCreate(),onBind()。而它的生命周期会受到宿主生命周期的影响,当宿主退出时,会自动调用onUnBind()、onDestroy()。当然也可以自己手动关闭,调用unbindService(),然后service也会回调方法结束服务。
不同的启动方式,只会调用一次onCreate()方法。如果先调startService(),再调bindService(),那么调用bindService()的时候就会直接调用onBind(),反过来同理。
如果先调用bindService(),结束时必须先调用UnbindService(),再调用StopService()。
三、service的使用
有时间在写完。。。。