绑定服务调用服务里的方法

activity绑定服务,等待服务被绑定成功后,返回服务里的内部类对象,activity在连接成功后拿到服务里的内部类对象,间接调用服务里的方法

A. activity中绑定服务

         intent = new Intent(this,MyService.class);

              mConn = new MyConn();

              Log.i(TAG, "1. 在activity中绑定服务");

              bindService(intent, mConn, BIND_AUTO_CREATE);

 

B. 服务被绑定成功

        @Override

              public IBinder onBind(Intent intent) {

                     Log.e(TAG, "2. 服务被绑定成功");

                     Log.e(TAG, "3. 在服务里创建一个内部类,在onBind方法中返给activity");

                     return new Boss();

              }

 

C. 在服务里创建一个内部类,在onBind方法中返给activity

/**

* 服务里的内部类

* 非你莫属内部人员

public class Boss extends Binder{
   public void qianShouMM(int money){
     if (money > 1000) {
           methodInService();
       }else {
              Toast.makeText(MyService.this, "没钱该干嘛干嘛去", 0).show();
        }
    }
}

 

D. activityService连接成功了

  /**
   * activity和Service的连接通道
   */
    private class MyConn implements ServiceConnection {
            @Override
          public void onServiceDisconnected(ComponentName name) {
          }
            @Override
          public void onServiceConnected(ComponentName name, IBinder service) {
                Log.i(TAG, "4. activity和Service连接成功了");
                Log.i(TAG, "5. 把IBinder强转成服务里的内部类");
                mService = (Boss)service;

          }

   }

E. IBinder强转成服务里的内部类

 

mService = (Boss)service;

 

F. 用服务里的内部类间接调用服务里的方法

 

mService.Boss(1000000);

 

 

转载于:https://www.cnblogs.com/loaderman/p/6416245.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值