前言:对于Service相信大家一定都不陌生,是安卓的四大组件之一,今儿我只是写一下应该怎么取使用它,简单的写一个吐司。
Service的生命周期:
onCreate():
首次创建服务时,系统将调用此方法。如果服务已在运行,则不会调用此方法,该方法只调用一次。
onStartCommand():
当另一个组件通过调用startService()请求启动服务时,系统将调用此方法。
onDestroy():
当服务不再使用且将被销毁时,系统将调用此方法。
onBind():
当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。
onUnbind():
当另一个组件通过调用unbindService()与服务解绑时,系统将调用此方法。
onRebind():
当旧的组件与服务解绑后,另一个新的组件与服务绑定,onUnbind()返回true时,系统将调用此方法。
服务:
startService() 启动服务
stopService() 关闭服务
bindService() 绑定服务
unbindService() 解绑服务
首先创建一个类继承Service:
@Override
public IBinder onBind(Intent intent) {
return new MyBind();
}
class MyBind extends Binder{
public void log(){
Toast.makeText(MyService.this, "服务", Toast.LENGTH_SHORT).show();
}
}
后台的服务已经好了,那么开始main中的代码:
new 个ServiceConnection
在onServiceConnected的方法中:
private ServiceConnection serviceConnection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MyService.MyBind myBind= (MyService.MyBind) service;
myBind.log();
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
在main的onCreate中开启绑定服务:
//意图
intent = new Intent(this, MyService.class);
//开启
startService(intent);
//绑定
bindService(intent,serviceConnection,BIND_AUTO_CREATE);
在main的onDestroy中取消绑定服务:
stopService(intent);
unbindService(serviceConnection);