请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?

 ClientHandler clientHandler = new ClientHandler(client,
                            new ClientHandler.CloseNotify() {
                                @Override
                                public void onSelfClosed(ClientHandler handler) {
                                    clientHandlerList.remove(handler);
                                }
                            });
                    // 读取数据并打印
                    clientHandler.readToPrint();
                    clientHandlerList.add(clientHandler);

里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?

正在回答 回答被采纳积分+3

2回答

Qiujuer 2018-10-31 10:06:58

在当前这个链接对应的 ClientHandler 被触发了关闭的操作的时候回调。

其实对于代码什么时候调用很简单,进入对应的类“ClientHandler”然后看一下里边的这个CloseNotify在什么时候被触发回调,然后再反向去推导什么时候会调用ClientHandler内部对应的方法就能知道答案了。

谢谢你对课程的支持哈。

0 回复 有任何疑惑可以回复我~
提问者 Lymanhan 2018-10-30 17:14:44

我好像想明白了,这个地方是创建了一个ClientHandler的对象名字是clientHandler,然后如果这个对象调用到里面的 exitBySelf() }这个方法,他就会调用 clientHandlerList.remove(handler);这个方法?可以这样理解吗

0 回复 有任何疑惑可以回复我~
  • Qiujuer #1
    嗯嗯,这是其一。后面我记得还有主动被关闭时的回调上也会有。
    回复 有任何疑惑可以回复我~ 2018-10-31 10:07:32
  • 提问者 Lymanhan 回复 Qiujuer #2
    谢谢老师解答
    回复 有任何疑惑可以回复我~ 2018-11-01 11:24:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信