zoukankan      html  css  js  c++  java
  • 绑定服务调用服务里的方法

    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);
    

     

  • 相关阅读:
    我在ZZ这八年
    安装JBpm
    用程序实现HTTP压缩和缓存
    (转)WPF Custom Control Dependency Property Gotcha
    开发一个Word的代码高亮插件
    (转)Getting rid of the DSL model explorer
    (翻译)LearnVSXNow! #16 创建简单的编辑器2
    对 COM 组件的调用返回了错误 HRESULT E_FAIL。
    Word中使用代码高亮插件
    使用HttpWebRequest post数据时要注意UrlEncode
  • 原文地址:https://www.cnblogs.com/loaderman/p/6416245.html
Copyright © 2011-2022 走看看