1、service基础
1)是什么?
Service是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。service里不可做耗时操作
2)和thread的区别
a. 定义
service没有thread独立,service依附于所在主线程。
后台:不依赖于界面操作
thread:程序执行的最小单元,分配cpu的基本单位
当你需要执行耗时网络,文件数据查询或者其他阻塞Ui线程的时候需要开个子线程;
播放音乐,开启天气预报的统计之类会用到services。
2、service启动方式
1>以调用Context.startService()启动,调用Context.stopService()结束
生命周期方法:
onBind() ——绑定服务时才会调用,必须实现的方法。返回IBinder接口
onCreate()——首次创建时,只会被调用一次
onStartCommand()——每次通过startService方法启动service时都会调用。返回值是int,
onDestroy()——服务销毁是会被调用
2>调用Context.bindService()方法建立,调用unbindService()关闭。
1)创建BindService服务端,继承自Service并在类中,创建一个实现IBinder接口的实例对象并提供公共方法给客户端调用
2)从onBind()回调方法返回次Binder实例。
3)在客户端中,从onServiceConeced()回调方法接收Binder,并使用提供的方法调用绑定服务。
网友评论