Android中Service与Activity的通信---回调接口方式

本文介绍了在Android中,如何通过回调接口的方式实现Service与Activity之间的高强度通信。相对于Handler等方法,回调接口在处理多Activity通信时更为便捷。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在技术交流群中有人问到:要实现service与activity的高强度通信用什么方法?

群友回答的是用handler,但面试官好像不太满意,后来本人查找了下资料,得到个人的结论:service与activity之前的通信方式有很多,回调接口方式、观察者模式、广播、还有handler等,方法有很多,但要高强度地通信,个人觉得还是用回调接口的方式比较妥当(虽然本人开始也是用的传入的handler。。。哈哈,用handler的话,如果涉及到service要向多个activity传送数据就变得麻烦了)。所以在这里记录下回调接口的方式进行通信:

service部分:

注册

<service
    android:name=".MyService"
    android:enabled="true"
    android:exported="false"
    android:launchMode="singleTop" >
    <intent-filter>
         <action android:name="MyService.START_SERVICE" />

         <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
</service>


public class MyService extends Service {
    private Callback callback = null;
      Thread readthread;
    Boolean RUN_THREAD = false;
    @Override
    public IBinder onBind(Intent intent) {
	Utils.log(1,"MyService", "onBind");
	return mybinder;//注意这里返回值不能为null  否则在activity中绑定时不会触发onServiceConnected()
    }
    private MyBinder mybinder = new MyBinder();
      public class MyBinder extends Binder{
    	public MyService getService(){
         return MyService.this;  
     }
  &nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值