asmack本身封装了断线重连机制,但是有一点需要注意
在设置链接属性钱,要加载ReconnectionManager这个类,否则没有效果。
直接上代码:
第一步
try {
Class.forName("org.jivesoftware.smack.ReconnectionManager");
} catch (Exception e1) {
}
第二步 设置链接参数,启动重连功能
ConnectionConfiguration configuration = new ConnectionConfiguration(
Contents.HOST, Contents.PORT);
configuration.setReconnectionAllowed(true);
第三步 链接后注册监听
connection.connect();
if (connection.isConnected()) {
connection.addConnectionListener(connectionListener);
}
public static ConnectionListener connectionListener = new ConnectionListener() {
@Override
public void reconnectionSuccessful() {
Log.i("connection", "reconnectionSuccessful");