イベントを実行したときにリスナーを削除する方法がわかりません。WebSocketを使用してリークの問題が発生しましたが、これでおそらく修正できます。
final WebSocket w = asyncHttpClient.prepareGet(url)
.execute(new WebSocketUpgradeHandler.Builder().build())
.get();
w.addWebSocketListener(new WebSocketTextListener() {
public void onMessage(String message) {
listener.onMessage(responseMessage);
// Here is the place I want to do my w.removeWebSocketListener(l);
}
@Override
public void onFragment(String s, boolean b) {
}
public void onOpen(WebSocket websocket) {
}
@Override
public void onClose(WebSocket webSocket) {
}
@Override
public void onError(Throwable throwable) {
}
});
問題は、WebSocketTextListener lis = new ....
あるオブジェクトが他のオブジェクトを必要とし、他のオブジェクトがこれに依存しているようなものを作成して渡すときに、今でも自分がやりたいことを実行できるようになっていることです。
シンプルなように見えますが、わかりません。