服务
Service,四大主键之一:
首先继承
Service类,重写父类的onBind方法,绑定服务时会调用,返回 IBinder(接口)对象!
<Binder是接口的实现类>
根据需求,可以继承Binder类,然后把对象返回就可以了
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
服务自己停止服务,调用stopSelf()方法;//停止服务
生命周期:
onCreate:创建服务时调用该方法
onBind:绑定服务时调用
onStartCommand:每次启动服务时会调用
onUnbind:解除绑定时调用
onDestroy:销毁服务时会调用
注意:项目清单文件中也必须注册服务
<service android:name=".service.MyService"></service>
在Activity中启动、停止、绑定、解除绑定服务:
Intent intent=new Intent(this, MyService.class); 意图对象startService(intent); 启动服务stopService(intent); 停止服务
绑定服务,需要实现ServiceConnection服务管理器接口.重写两个方法
class MyServiceConnection implements ServiceConnection{ @Override 绑定成功时会调用该方法,IBinder对象是服务类里面<span style="font-family: Consolas; font-size: 18px;">onBind方法返回的对象(如果不为空)</span> public void onServiceConnected(ComponentName name, IBinder service) { } @Override 绑定失败时 public void onServiceDisconnected(ComponentName name) { } }
MyServiceConnection connection=new MyServiceConnection(); 服务管理器对象
Intent intent=new Intent(this, MyService.class); 意图对象Service.BIND_AUTO_CREATE:绑定的模式,如果没有创建服务,就先创建,否则直接绑定!
bindService(intent,connection, Service.BIND_AUTO_CREATE); 绑定服务unbindService(connection); 解除绑定