为什么要引入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) { } } }

最新文章

  1. ORACLE临时表空间总结
  2. jQuery基础1
  3. BI的相关问题[转]
  4. discuzX3后台管理插件开发入门
  5. 在Mac OSX 10.10 上安装opencv
  6. 【转载】怎样使用ZEMAX导出高质量的图像动画
  7. nim2 取石头youxi
  8. Makefile里面的$(MAKE)到底是啥
  9. paip.按键替换映射总结
  10. HDU 4022 Bombing (map + multiset)
  11. C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。
  12. noip2016普及组 题解
  13. Beta冲刺 第五天
  14. Python_自定义有向图
  15. 「JLOI2015」管道连接 解题报告
  16. 笔面试复习(spring常用.jar包/事务/控制反转/bean对象管理和创建/springMVC工作原理/sql查询)
  17. ElasticSearch入门2: 基本用法
  18. 删除草稿信息之后 threads表的数据没有发生变化
  19. jQuery操作字符串
  20. MySQL 用户管理及权限管理

热门文章

  1. 基于node和npm的命令行工具——tive-cli
  2. centos6.5搭建LAMP
  3. python 用字典进行计数的三种常用方法
  4. 基于ShardingJDBC的分库分表及读写分离整理
  5. Docker 安装mysql主从
  6. VMware 创建的虚拟机,Xshell无法进行连接
  7. 第10组 Beta冲刺 (1/5)
  8. kafka学习笔记(四)kafka的日志模块
  9. 360浏览器兼容模式下jsp页面访问不到js文件
  10. 【白话科普】《逆局》最终 boss 隐藏自己的方式是?