在android中关闭websocket的最佳实践

时间:2014-12-04 10:00:56

标签: android sockets websocket

我使用这个library连接到android的websocket服务器。

特别是这部分:

AsyncHttpClient.getDefaultInstance().websocket("ws://192.168.2.10:8000/temp" , "my-protocol", new WebSocketConnectCallback() {
    @Override
    public void onCompleted(Exception ex, WebSocket webSocket) {
        if (ex != null) {
            ex.printStackTrace();
            return;
        }
        webSocket.send("a string");
        webSocket.setStringCallback(new StringCallback() {
            @Override
            public void onStringAvailable(String s) {
                Debug.Log( LOGTAG ,"I got a string: " + s);
            }
        });
        webSocket.close(); // issue here
    }
});

我想在点击按钮时关闭套接字。现在,每当我想向套接字发送消息时,我打开它并关闭它。

我想打开它一次并保持活着并在我点击关闭按钮时关闭它。我的想法是将一个变量传递给WebSocketConnectCallback并创建一个静态变量并基于此变量关闭套接字。

我想知道在这种情况下最佳做法是什么。

1 个答案:

答案 0 :(得分:0)

使用Application类(http://developer.android.com/reference/android/app/Application.html):

继承您自己的Application类,在这里您可以跟踪套接字,打开它,根据需要关闭它。

查看教程(第一次google匹配,也许有更好的匹配):http://www.intertech.com/Blog/androids-application-class/

因此,基本上扩展Application并将您的类作为应用程序类添加到清单文件中。

您可以在未使用的情况下添加一个可能在几次后关闭套接字的计时器。