aSmack,如何强制重新连接?

雷扎

我有一个已经实现的aSmack应用程序(8-4.0.5),我们知道它具有内部重新连接管理,但是并没有夸大其词,因为有时我们应该等待5分钟才能进行重新连接,而现在我们知道这是个好时机这样做,所以我已经实现了这一点:

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);
               }

   }
}; 

但是问题是有些时候他们俩都尝试同时连接(我的经理和内置经理),结果是,他们下次又一次又一次地重新连接,每次我收到此错误时:

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)

我猜是因为1已经完成工作并关闭了编写器,而另一位看到的是编写器已关闭,请断开连接!就像两个嫉妒的孩子!

所以有什么想法我可以在这里做什么,例如我如何禁用影响或强制重新连接?

喜欢自拍

我必须删除aSamack自动重新连接系统,然后完全自己完成,这样我的应用才能获得稳定性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何强制Meteor重新加载订阅?

来自分类Dev

如何强制刷新/重新绘制JScrollPane?

来自分类Dev

无法使用aSmack 4.0.2建立新连接

来自分类Dev

强制雄辩模型重新解析数据库连接

来自分类Dev

如何强制重新加载页面

来自分类Dev

如何强制OpenCL不重新对齐结构?

来自分类Dev

如何强制重新加载/刷新组件视图?

来自分类Dev

连接新屏幕时,强制Awesome重新启动

来自分类Dev

如何强制#vuetify #treeview节点重新加载?

来自分类Dev

重新连接屏幕(运行irssi)会强制调整窗口大小

来自分类Dev

如何在OpenWRT PPPoE连接模式下强制手动重新连接?

来自分类Dev

如何强制刷新连接的硬件?

来自分类Dev

带有Asmack的Android-连接到XMPP时如何获取当前状态信息?

来自分类Dev

如何强制重新缓存更新的网页

来自分类Dev

如何重新连接Javascript文件

来自分类Dev

如何让wifi自动重新连接?

来自分类Dev

如何强制Word重新计算图像编号?

来自分类Dev

如何强制OS重新加载fstab?

来自分类Dev

如何强制Slack重新连接?

来自分类Dev

“强制重新检查”如何工作?

来自分类Dev

如何强制NetworkManager在登录之前建立连接?

来自分类Dev

WebSphere MQ:“对象已打开”。如何强制释放并重新连接?

来自分类Dev

XMPP aSmack-如何监听自己的用户状态(在线/离线)以重新连接

来自分类Dev

如何强制 JSF 重新发送请求?

来自分类Dev

如何强制视图重新计算其尺寸

来自分类Dev

EF 如何强制内部连接?

来自分类Dev

如何强制 React 组件重新渲染?

来自分类Dev

变异后如何强制App重新渲染?

来自分类Dev

如何强制重新排序jsTree?

Related 相关文章

热门标签

归档