《第一行代码-Android》学习笔记(十八)

实现活动和服务的通信:

1.依然通过Intent,不过这一次需要多两个对象:BinderServiceConnection(匿名类)

1.1 Binder中将实现活动想做的事情;

1.2 ServiceConnection将活动、服务以及Binder对象连接起来连接起来:在connection对象的内部将实现监听服务与活动绑定是否成功两个方法,在绑定成功的方法中可以获取到Binder对象,然后就可以实现Binder中想做的事情。

 

2.在自己的Service实现类中创建一个类继承Binder类,并在里面可以创建任何自己想要的行为。在Service实现类中实例化出这个Binder类,在serviceonBind方法中return 这个实例。

class DownLoadBinder extends Binder

    {

        public void startDownload()

        {

            Log.d("gu", "startDownload");

        }

 

        public int getProgress()

        {

            Log.d("gu", "getProgress");

            return 0;

        }

    }

 

    @Override

    public IBinder onBind(Intent intent)

    {

        return mBinder;

    }

 

3.Bind Service,调用bindService方法,方法传入三个参数:Intent ServiceConnection对象、flag标志位。

Intent bindIntent = new Intent(MainActivity.this, MyService.class);

bindService(bindIntent, conn, BIND_AUTO_CREATE);

BIND_AUTO_CREATE:表示活动和服务进行绑定后,自动创建服务,者会使得MyServiceonCreate得到执行,但是onStartCommand得不到执行。

 

4.ServiceConnection中的onServiceDisconnected()方法在正常情况下是不被调用的,它的调用时机是当Service服务被异外销毁时,例如内存的资源不足时这个方法才被自动调用。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值