Binder is like RPC in java. It enables multi-processes communication. Now we
will talking about how to bind service using IBinder class.
总共有3种bind service方法:
1.使用IBinder
class
2.使用Messanger
class
3.使用AIDL
这里只讨论IBinder class方法。
用IBinder class 来bind service分以下几步:
Service创建步骤:
1.创建一个新的工程名字为“BindServiceUsingBinderClass”;
2.在创建的Application中创建一个Service.java继承Service;
3.在Service.java中创建一个LocalBinder内部类继承Binder;
4.实现service中onBind()方法并返回“LocalBinder的实例。
Activity创建步骤:
1.创建Client
Activity,并创建一个”ServiceConnection"接口的instance。
2.实现该接口的两个方法-onServiceConnected()和onServiceDisconnected().
3.在onServiceConnected()方法中,把iBinder instance cast成localBinder类。
4.实现onStart() 方法并用bindService()绑定服务。
5.实现onStop() 方法,并用unbindService()解除绑定。
Service.java代码如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Client.java
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|