四大组件---Service的生命周期(一)

Service的生命周期:

onCreate()----->onStartCommand()------>onStart()------->onDestroy()

服务只会被创建一次,如果服务已经创建了,并没有被销毁,多次调用startService方法,只会执行onStartCommand()和onStart()方法。

服务停止有两种方法:

1)、stopService()方法。

2)、程序管理器,手动停止。

停止服务时会调用onDestroy()方法。

在代码中开启和关闭服务。

Intent intent=new Intent(this,Service.class);
startService(intent);
Intent intent=new Intent(this,Service.class);
stopService(intent);

绑定服务器:

通过绑定服务器的方式来调用服务器里面的方法。


1)、在activity中采用绑定服务器方式开启服务器

Intent intent=new Intent(this,Service.class);
//new MyConn()是中间人,BIND_AUTO_CREATE是在绑定服务器不存在时,就自动创建服务器
bindSercice(intent,new MyConn(),BIND_AUTO_CREATE);
2)、在Service中,如果服务器成功绑定,就执行OnBind(),返回iBinder对象

@Override
pubic IBinder onBind(Intent intent){
        retrun new MyBinder();
}
3)、服务返回iBinder对象会被传递给MyConn的回调方法

private class MyConn implements ServiceConnected {
	//服务器绑定时调用
	@Override
	public void onSerciveConnected(componentName name,IBinder service){
		myBinder=(MyBinder)service;
	}
	//服务器失去绑定时调用,程序异常终止
	@Override
	public void OnServiceDisconnected(componentName name){
	}
}
4)、在activity里面得到服务iBinder的引用

private Service MyBinder.myBinder;

5)、利用ibinder对象间接的调用了服务里面的方法

public void change(View view){
	myBinder.callChange("月亮之上");
}





你可能感兴趣的:(四大组件---Service的生命周期(一))