通过bindservice调用服务内部方法

    xiaoxiao2021-03-25  78

    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内并返回

    @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return 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 { @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub binder = (MyBinder) service; } @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub } }

    6.在 onDestroy方法内解绑

    @Override protected void onDestroy() { // TODO Auto-generated method stub unbindService(conn); super.onDestroy(); }

    转载请注明原文地址: https://ju.6miu.com/read-36049.html

    最新回复(0)