0

来自墨西哥的下午好,

我有一个带有处理程序的 FragmentActivity,在里面我放了一个有自己的处理程序的 Fragment。

在另一边,我有一个连接到套接字并通过 mHandler.obtainMessage(MESSAGE_SOMETHING).sendToTarget(); 发送消息的服务。作为蓝牙示例实现了服务和活动之间的互通。

我的问题是,¿如何使我的 FragmentActivity 和 Fragment 进程与我的服务发送的消息相同?我在考虑处理程序数组或其他东西,但我认为这是一种更好的方法。

对不起我的英语不好,祝你有美好的一天......

4

1 回答 1

0

我做的很简单,

首先实现一个 Handlers 列表

LinkedList<Handler> mHandlers = new LinkedList<Handler>();
LinkedList<String> mTags = new LinkedList<String>();

然后我为注册和从列表中删除处理程序创建了两个函数

private void registerHandler(Handler h, String tag){
    mHandlers.add(h);
    mTags.add(h);
}

private void removeHandler(String tag){
    int index=10000;
    for(int i = 0; i < mTags.size(); i++){
        if(s.equals(mTags.get(i))){
            index=i;
            break;
        }
    }
    if(index != 10000){
        mTags.remove(index);
        mHandlers.remove(index);
    }
}

对于向 n-Handlers 发送消息,我将我的功能更改为

for(Handler h:mHandlers){
    h.obtainMessage(MESSAGE_SOMETHING).sendToTarget();
}

就这样...

于 2013-07-26T15:05:12.647 回答