策略模式和Android服务/ UI消息传递

时间:2016-10-25 15:20:24

标签: android switch-statement android-service strategy-pattern android-service-binding

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

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

一开始这很好,但是你可以想象,它很快变成了一种令人讨厌的方法。我想用一些花哨的策略模式来重构它,但我对如何做到这一点感到有些困惑。我无法真正摆脱这些常数,因为这是我的活动与我的服务交谈的方式。有什么想法吗?

提前谢谢

1 个答案:

答案 0 :(得分:1)

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