Service Test2

来源:互联网 发布:美国8月非农数据 编辑:程序博客网 时间:2024/04/29 23:31

源码下载(免下载积分):下载

当创建一个可以绑定的Service时,必须提供一个IBinder用于与客户端进行通信,有三种方式可以定义IBinder, 

对于直接继承Binder类已经测试了,那怎么测试使用一个Messenger来提供IBinder的类呢?可以这样:

1. 继承ServiceTestCase
public class BindService_MessengerTest                 extends ServiceTestCase<BindService_Messenger> 
2. 添加构造函数
    //用于构造测试用例    public BindService_MessengerTest() {        super(BindService_Messenger.class);    }
3. 增加setUp()函数和先验测试(这次是啥也没做)
    //用于清除以前的测试,并且用于初始化变量    @Override    protected void setUp() throws Exception {        super.setUp();    }    //先验测试,    public void testPreconditions()    {    }
4. 测试Service是否可以绑定,并可以获取messenger来向服务发message
    public void testBindable()    {        Intent intent = new Intent(getContext(),                         BindService_Messenger.class);        //绑定服务,并会获得一个IBinder的对象        IBinder iBinder = bindService(intent);        assertNotNull(iBinder);        BindService_Messenger bindService = getService();        //验证service是否启动        assertNotNull(bindService);        //获取messenger,接下来就能向service发送message了        Messenger messenger = new Messenger(iBinder);        Message msg = Message.obtain(null, BindService_Messenger.HELLO, 0, 0);        try {            messenger.send(msg);        } catch (RemoteException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

由于AIDL(Android Interface Definition Language)使用较少,就不在讨论了。


0 0
原创粉丝点击