Android中Activity通过callback与Service通信

我之前的博客有提到关于接口回调的内容,可以使用接口回调的方法进行Activity和Fragment通信。这里一样的道理,我们可以使用接口回调进行Activity和Service的通信。他们的原理是一样的,都是为了实现最大的解耦性,保证Service和不同Activity可以任意绑定。

我们实现的步骤如下

1.在Service内部定义接口

public interface Callback{
    void onDataChange(String data);
}

2.定义全部变量

private Callback callback;

3.定义一个为callback对象赋值的方法

public void setCallback(Callback callback){
    this.callback = callback;
}

4.创建一个Binder类

public class Binder extends android.os.Binder{
    
}

5.在Binder类中创建方法,返回Service对象

public MyService3 getMyService(){
    return MyService3.this;
}

6.在Activity的onServiceConnected方法中

myBinder = (MyService3.Binder)iBinder;
myBinder.getMyService().setCallback(new MyService3.Callback(){
    @Override
    public void onDataChange(String data){
        
    }
});

7.回到Service中,调用方法

callback.onDataChange("数据改变了");

这样就可以调用到Activity中的方法了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值