策略模式和 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 方法,根本不需要处理消息。
我有一个 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 方法,根本不需要处理消息。