之前的笔记记得有点糙,主要是后面代码实现部分在,在针对的总结一下。
第一种
用StartService()方法来进行方法的调用
Service
新产生的服务是独立于调用者的,有自己独立的生命周期。
onCreate()->onStartCommand()(新)->startService()->onDestroy()
第二种
用 bindService()方法来绑定
Service
,
这个Service和调用者相关,调用者退出
Service
也就终止onCreate()->onBind()->onUnbind()->onDestroy()
(一种实现方法)
首先MyService里要有一个可以返回MyService对象的Binder方法,这样就可以在MainActivity里使用MyService了
private final MyBinder binder = new MyBinder();
public class MyBinder extends Binder {
MyService getService() {
return MyService.this;
}
}
在MainActivity里需要写一个
ServiceConnection
private ServiceConnection sconnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
Log.e("running", "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
Log.e("running", "onServiceDisconnected");
}
};
然后用bindService(intent, sconnection, BIND_AUTO_CREATE);绑定调用
unbindService(sconnection);取消绑定