Service服务主要是去执行耗时操作(不需要与用户交互并且要长期运行的任务)
1、启动式service:通过调用startservice方法启动服务,这种方式的服务,启动服务的客户端与服务端不能发生交互。只能开启和关闭service,不能操作service
1-1:显示启动
intent=new Intent(this,MyService.class);
startService
1-1:继承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)