首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >aSmack,如何强制重新连接?

aSmack,如何强制重新连接?
EN

Stack Overflow用户
提问于 2014-11-10 11:44:31
回答 1查看 427关注 0票数 3

我有一个aSmack实现的应用程序,(8-4.0.5),因为我们知道它有一个内部重连接管理,但这并不具有讽刺意义,因为有时我们应该等待5分钟才能重新连接,而我们现在知道现在是这样做的好时机,所以我已经实现了如下:

代码语言:javascript
运行
复制
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
    intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
               if(isNetworkAvailable()){
                   if(MyService.myServiceInstance!=null){
                       if(!MyService.connection.isConnected() || !MyService.connection.isAuthenticated()){
                           MyService.myServiceInstance.performReconnect();
                          // Which goes to Connect() and Authenticate()
                       }
                   }
                  LMApplication.getInstance().getPresistentJobManager().onNetworkChange(true);
               }

   }
}; 

但问题是,有时他们都试图同时连接(我的经理和内置管理器),结果是,下次他们会一次又一次地重新连接,每次我得到这个错误:

代码语言:javascript
运行
复制
11-10 14:58:09.069: W/PacketWriter(26439): Exception writing closing stream element
11-10 14:58:09.069: W/PacketWriter(26439): java.io.IOException: BufferedWriter is  
closed
11-10 14:58:09.069: W/PacketWriter(26439):  at    
java.io.BufferedWriter.checkNotClosed(BufferedWriter.java:130)
11-10 14:58:09.069: W/PacketWriter(26439):  at   
java.io.BufferedWriter.flush(BufferedWriter.java:122)
11-10 14:58:09.069: W/PacketWriter(26439):  at 
org.jivesoftware.smack.util.ObservableWriter.flush(ObservableWriter.java:44)
11-10 14:58:09.069: W/PacketWriter(26439):  at 
org.jivesoftware.smack.tcp.PacketWriter.writePackets(PacketWriter.java:190)
11-10 14:58:09.069: W/PacketWriter(26439):  at 
org.jivesoftware.smack.tcp.PacketWriter.access$000(PacketWriter.java:40)
11-10 14:58:09.069: W/PacketWriter(26439):  at 
org.jivesoftware.smack.tcp.PacketWriter$1.run(PacketWriter.java:77)

我想是因为我已经完成了工作并关闭了作者,而另一个看到的是作者已经关闭了,断开连接!就像两个嫉妒的孩子!

你知道我在这里能做些什么吗?比如我怎样才能使影响失效,或者强制重新连接?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 12:04:01

我不得不删除aSamack自动重新连接系统,我完全是自己做的,这样我的应用程序就稳定了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26843087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档