zoukankan      html  css  js  c++  java
  • Android 通过接口的方式去调用服务里面的方法

    public class MainActivity extends AppCompatActivity {
        private MyConn conn;
        private Iservice myBinder; // 我定义的中间人对象
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            Intent intent = new Intent(this, DemoService.class);
            //连接服务
            conn = new MyConn();
            bindService(intent, conn, BIND_AUTO_CREATE);
        }
     
        //点击按钮调用服务里面banzheng的方法
        public void click(View v) {
            myBinder.callBanZheng(100000);
        }
     
        //监视服务的状态
        private class MyConn implements ServiceConnection{
            //当服务连接成功调用
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                //获取中间人对象
                myBinder = (Iservice) service;
            }
            //失去连接
            @Override
            public void onServiceDisconnected(ComponentName name) {
     
            }
        }
     
        @Override
        protected void onDestroy() {
            //当Activity销毁的时候 解绑服务
            unbindService(conn);
            super.onDestroy();
        }
    }
    public class DemoService extends Service {
        private static final String TAG = "jojp";
        public DemoService() {
        }
        // 把我定义的中间人对象返回
        @Override
        public IBinder onBind(Intent intent) {
            // TODO: Return the communication channel to the service.
    //        throw new UnsupportedOperationException("Not yet implemented");
            return new MyBinder();
        }
     
        //banzheng的方法
        public void banZheng(int money) {
            if (money > 1000) {
                Toast.makeText(getApplicationContext(), "banZheng", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "banZhengFail", Toast.LENGTH_SHORT).show();
            }
        }
     
        //打麻将的方法
        public void playMaJiang() {
            Log.d(TAG, "playMaJiang: ");
        }
        //洗桑拿的方法
        public void sangNa() {
            Log.d(TAG, "sangNa: ");
        }
     
        private class MyBinder extends Binder implements Iservice{
            @Override
            public void callBanZheng(int money) {
                //调用banzheng的方法
                banZheng(money);
            }
            public void callPlayMaJiang() {
                //调用playMaJiang的方法
                playMaJiang();
            }
            public void callSangNa() {
                //调用洗桑拿的方法
                sangNa();
            }
        }
    }
    public interface Iservice {
        //把领导想暴露的方法都定义在接口里
        public void callBanZheng(int money);
    }
  • 相关阅读:
    CentOS6.5 升级 Python 2.7 版本
    mysql 主从实施步骤
    innodb_log_buffer_size和innodb_buffer_pool_size参数说明
    mysql innodb_log_buffer_size和 innodb_buffer_pool_size设置
    8.2.1.8 IS NULL Optimization IS NULL 优化 (索引不存储NULL值)
    8.2.1.7 Use of Index Extensions 索引扩展使用
    8.2.1.5 Engine Condition Pushdown Optimization 引擎优化条件推入
    报表引擎API开发入门—简单程序数据集
    8.2.1.4 Index Merge Optimization
    8.2.1.3 Range Optimization 范围优化
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9542256.html
Copyright © 2011-2022 走看看