0


当我实现处理程序时,我收到警告

' 这个 Handler 类应该是静态的,否则可能会发生泄漏 '
因为上面的警告我将处理程序定义为静态类。下面是修改后的。

public static Handler   _handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {


        Bundle bundle = msg.getData();
        .
        .           
        .
        super.handleMessage(msg);
    }

};

现在我的这个处理程序将接收来自许多线程的消息。所以我想知道将这个处理程序定义为静态是否可以?Handler 将所有接收到的消息保存在一个队列中,并一一处理而不会丢失任何内容?

4

1 回答 1

0

处理程序始终按照消息发布/调度的顺序一次处理一条消息,无论该类是否为静态。

如果它不是静态的,则担心您可能会长时间泄漏类引用:此 Handler 类应该是静态的,否则可能会发生泄漏: IncomingHandler

于 2015-01-07T18:38:59.033 回答