策略模式和 Android Service/UI 消息通信

Strategy pattern and Android Service/UI Messaging communication

我有一个 Android 绑定服务,可以通过 Messenger 与活动进行通信。我的服务通过这样的处理程序捕获新消息:

@Override
public void handleMessage(Message msg) {
    switch (msg.what) {
        case MyService.SEND_BLUETOOTH_MESSAGE:
            ...;
        case MyService.POST_DATA:
            ...;
        case MyService.GET_DATA:
            ...;
    }
}

起初这很好,但正如您所想象的那样,它很快就变成了一个令人讨厌的太长的方法。我想用一些奇特的策略模式重构它,但我对如何去做有点困惑。我无法真正摆脱这些常量,因为这是我的活动与我的服务对话的方式。有什么想法吗?

提前致谢

当您将服务绑定到 activity 时,您可以获得该服务的实例。这样你就可以直接在实例上调用 public 方法,根本不需要处理消息。