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

来源:互联网 发布:淘宝小号购买实名认证 编辑:程序博客网 时间:2024/05/30 23:42

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对象

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

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

private Service MyBinder.myBinder;

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

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





0 0
原创粉丝点击