通过bindservice调用服务内部方法

来源:互联网 发布:网络直播市场能火几年 编辑:程序博客网 时间:2024/06/05 23:53

1.在服务内部定义一个方法

public void banzheng(int money){if (money < 1000){Toast.makeText(getApplicationContext(), "太少了", 1).show();} else if (money > 1000){Toast.makeText(getApplicationContext(), "太多了", 1).show();}}

2.在服务的内容定义一个中间人对象

public class MyBinder extends Binder{public void callBanZheng(int money){banzheng(money);}}

3.把定义的中间人对象放在onBind内并返回

@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn new MyBinder();}

4.在acivity的oncreate方法内调用bindService

Intent intent = new Intent(this, BanZhengService.class);conn = new MyConnection();bindService(intent, conn, BIND_AUTO_CREATE);

5.拿到中间价对象,就可以调到服务的电话

public class MyConnection implements ServiceConnection{@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {// TODO Auto-generated method stubbinder = (MyBinder) service;}@Overridepublic void onServiceDisconnected(ComponentName name) {// TODO Auto-generated method stub}}

6.在 onDestroy方法内解绑

@Overrideprotected void onDestroy() {// TODO Auto-generated method stubunbindService(conn);super.onDestroy();}


0 0
原创粉丝点击