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

     

  • 相关阅读:
    Linux 下安装JDK1.8
    Linux 常规操作
    C3P0连接池拒绝连接
    Oracle查看并修改最大连接数
    Oracle 建立 DBLINK
    Oracle 数据 update后怎么恢复到以前的数据
    Oracle 11g中解锁被锁定的用户
    身份证15位转18位
    Druid数据库连接池
    CentOS 下安装 LEMP 服务(Nginx、MariaDB/MySQL 和PHP)
  • 原文地址:https://www.cnblogs.com/loaderman/p/6416245.html
Copyright © 2011-2022 走看看