为什么要引入bindService:目的为了调用服务里面的方法

(1)定义一个服务 服务里面有一个方法需要Activity调用

(2)定义一个中间人对象(IBinder) 继承Binder

(3)在onbind方法里面把我们定义的中间人对象返回

(4)在Activity的oncreate 方法里面调用bindservice 目的是为来获取我们定义的中间人对象

(4.1)获取中间人对象

(5)拿到中间人对象后就可以间接的调用到服务里面的方法

public class TestService extends Service {

    //当bindservice
@Override
public IBinder onBind(Intent intent) { //[3]把我们定义的中间人对象返回
return new MyBinder();
} @Override
public void onCreate() {
super.onCreate();
} //测试方法
public void banZheng(int money){ if (money > 1000) {
Toast.makeText(getApplicationContext(), "我是领导 把证给你办了", 1).show();
}else{ Toast.makeText(getApplicationContext(), "这点钱 还想办事", 1).show();
} } //[1定义一个中间人对象 ] public class MyBinder extends Binder{ //[2]定义一个方法 调用办证的方法
public void callBanZheng(int money){
banZheng(money); } } }
public class MainActivity extends Activity {

    private MyBinder myBinder; //这个是我们定义的中间人对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // //开启服务
Intent intent = new Intent(this,TestService.class);
//连接服务 TestService
MyConn conn = new MyConn();
//绑定服务
bindService(intent, conn, BIND_AUTO_CREATE); } //点击按钮 调用TestService 服务里面的办证方法
public void click(View v) {
//通过我们定义的中间人对象 间接调用服务里面的方法
myBinder.callBanZheng(102); } //监视服务的状态
private class MyConn implements ServiceConnection{ //当连接服务成功后
@Override
public void onServiceConnected(ComponentName name, IBinder service) { //[4]获取我们定义的中间人对象 myBinder = (MyBinder) service;
} //失去连接
@Override
public void onServiceDisconnected(ComponentName name) { } } }

通过bindservice方式调用服务方法里面的过程的更多相关文章

  1. start方式开启服务的特点&bindService 方式开启服务的特点

      服务是在后台运行 可以理解成是没有界面的activity   定义四大组件的方式都是一样的     定义一个类继承Service     start方式开启服务的特点   特点:   (1)服务通 ...

  2. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  3. Java 调用对象方法的执行过程

    弄清调用对象方法的执行过程十分重要.下面是调用过程的详细描述: 1) 编译器查看对象的声明类型和方法名.假设调用x.f(param),且隐式参数x声明为C类的对象.需要注意的是:有可能存在多个名为f, ...

  4. asp.net 通过ajax方式调用webmethod方法使用自定义类传参及获取返回参数

    实体类    public class User    {        public int Id { get; set; }        public string Name { get; se ...

  5. [android] 代码注册广播接收者&利用广播调用服务的方法

    利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent ...

  6. SpringCloud Nacos + Ribbon 调用服务的 2 种方法!

    在 Nacos 中,服务调用主要是通过 RestTemplate + Ribbon 实现的,RestTemplate 是 Spring 提供的 Restful 请求实现类,而 Ribbon 是客户端负 ...

  7. WCF 客户端调用服务操作的两种方法

    本节的主要内容:1.通过代理类的方式调用服务操作.2.通过通道的方式调用服务操作.3.代码下载 一.通过代理类的方式调用服务操作(两种方式添加代理类) 1.手动编写代理类,如下: 客户端契约: usi ...

  8. 利用广播调用后台服务方法并根据方法返回的内容更新UI

    一.UI布局代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...

  9. Angular中怎样创建service服务来实现组件之间调用公共方法

    Angular组件之间不能互相调用方法,但是可以通过创建服务来实现公共方法的调用. 实现 创建服务命令 ng g service 服务路径/服务名 比如这里在app/services目录下创建stor ...

随机推荐

  1. ROS机器人导航一 : 从英雄联盟到ROS导航

    写在前面: 这是这个系列的第一篇 本系列主要从零开始深入探索ROS(机器人操作系统)的导航和规划. 这个系列的目标,是让大家了解: 1.ROS的导航是怎么实现的 2.认识ROS里各种已有的导航算法,清 ...

  2. 「影院售票系统」 · Java Swing + MySQL JDBC开发

    目录 文档说明: 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 实现代码: 一.数据库: 二.Java Swing: com.ynavc.Bea ...

  3. maven打包报错 Fatal error compiling: tools.jar not found: C:\Program Files\Java\jre1.8.0_151\..\lib\tool

    maven 打包报错  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:comp ...

  4. centos7 配置JDK

    // 查看是否有jdk  rpm -qa | grep java 卸载掉系统自带的jdk(箭头标识),命令:rpm -e --nodeps  后面跟系统自带的jdk名 比如:rpm -e --node ...

  5. redis持久层设置

    1.默认为RDB存储方式,每次修改数据库,需要输入指令save才会存入磁盘的dump.rdb文件里,相当于备份快照,下次开启服务后会自动缓存于内存里.当然,满足下面几个条件也会自动保存到磁盘:save ...

  6. spring cloud --- Zuul --- 心得

    spring boot      1.5.9.RELEASE spring cloud    Dalston.SR1 1.前言 什么是 Zuul? Zuul是微服务网关,与Gateway类似 ,根据请 ...

  7. Echart可视化学习集合

    一.基本介绍:ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.ECharts最初由百度团队开源,并于2018年初捐赠给Apache ...

  8. Flink 非对齐Unaligned的checkpoint(源码分析)

    本文源码基于flink1.14 在帮助用户排查任务的时候,经常会发现部分task处理的慢,在Exactly once语义时需要等待快照的对齐而白白柱塞的情况 在flink1.11版本引入了非对齐的ch ...

  9. css中两种居中方式text-align:center和margin:0 auto 的使用场景

    关于使用text-align:center和margin:0 auto 两种居中方式的比较 前言:最近由于要学习后端,需要提前学习一部分前端知识,补了补css知识,发现狂神在讲这一部分讲的不是特别清楚 ...

  10. 聊聊dubbo协议

    搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 协议 协议通俗易懂地解释就是通信双方需要遵循的约定. 我们了解的常见的网络传输协议 ...