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


更多相关文章

  1. android中的ListView的使用方法
  2. 【android开发】之【android动态布局方法总结】
  3. android的ndk修改app_platform的方法,亲测绝对可行
  4. H5调android 的方法修改UI无效
  5. Android实现计时以及倒计时的几种方法
  6. Android程序——退出程序的时候杀死所有进程的一个方法
  7. Android之ListView与自定义adapter简单实例
  8. android 串口通信,蓝牙通信等需要输出十六进制数据的方法
  9. Android 下保持屏幕常亮的实现方法

随机推荐

  1. android noTouch 事件
  2. 使用SDK Manager更新时出现问题
  3. Android(安卓)仿今日头条频道管理(上)(GridV
  4. 杂谈:后台进程对Android性能的影响
  5. Android手机震动抖动效果的实现
  6. 集成Android免费语音合成功能(在线、离线
  7. android 资料文档共享
  8. Android普通对话框原理
  9. AIDL --- Android中的远程接口[转]
  10. checkbox 文字与多选框的对齐问题