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;
public void change(View view){ myBinder.callChange("月亮之上"); }