我有一个Android绑定的服务,通过Messenger与活动通信。我的服务通过如下处理程序捕获新消息:
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MyService.SEND_BLUETOOTH_MESSAGE:
...;
case MyService.POST_DATA:
...;
case MyService.GET_DATA:
...;
}
}
这一开始很好,但你可以想象,它很快就变成了一个讨厌的太长的方法。我想用一些奇特的策略模式来重构它,但我对如何做到这一点有点困惑。我无法真正摆脱这些常量,因为这是我的活动与服务通信的方式。什么好主意吗?
提前致谢
当你绑定服务到你的活动,你可以获得服务的实例。这样,您就可以直接调用实例上的公共方法,而根本不需要处理消息。