Service服务

968 阅读2分钟

Service服务主要是去执行耗时操作(不需要与用户交互并且要长期运行的任务)

1、启动式service:通过调用startservice方法启动服务,这种方式的服务,启动服务的客户端与服务端不能发生交互。只能开启和关闭service,不能操作service

1-1:显示启动 intent=new Intent(this,MyService.class); startService

1-2:继承service的子类,覆盖onbind方法

2、绑定式service:可以与服务进行交互 无论是启动是服务还是绑定式服务,第一次运行时都会执行oncreate方法

单独的绑定式服务

服务中的服务绑定式异步的

1、客户端会发绑定请求给服务,服务端会返回一个借口给客户端,让客户端可以操作这个服务 客户端一旦绑定服务,就会调用onbind方法

混合式的启动式服务和绑定式服务在一起的

绑定式服务编写步骤:

1、创建一个service的子类,覆盖onbind方法

2、在service类中编写一个内部类,该类必须是bind的子类

3、 方法1:直接在第二步的子类中编写可以提供给客户端调用的业务方法

方法2:在第2步的子类中编写返回服务类对象的方法 在service类中编写业务方法

4、修改onbind方法的返回,返回地2步的内部类对象

客户端编写/调用者的编写

1、准备intent对象,实例化intent对象,用intent对象标明要绑定的服务的名称

2、准备serviceconnection对象,实例化serviceconnection对象,实现onServiceConnected(服务已连接)方法和onServiceDisconnected(服务崩溃)方法 在onServiceConnected(服务已连接)方法中获得service的第二步的应用,通过该引用调用服务中的业务方法 3、调用bindservice(intent,serviceconnection,Context.BIND_AUTO_CREATE)