目前是一个IM系统,需要在网络连接断开的时候,关掉主程序,回到登陆对话框,并且在网络连接恢复的时候,可以自动登陆,类似于MSN和Skype的功能。
我们底层用的是SMACk,在3.0的版本中,已经实现了自动登陆的功能,但现在的问题出现在网络故障的那一步,我们所作的是调用 PlatformUI.getWorkbench().restart()方法,实现重启,并且使用IPreferenceStore来保存一些基本类型的数据信息。可是这样一来,内存中的所有对象就会被清理掉,新创建的ConnectionListener就无法监听到XMPPConnection的变化,于是UI就无法收到消息,从而不能自动登陆。
所以想问一下,有没有什么比较好的办法,可以在不调用PlatformUI.getWorkbench().restart()方法的情况下,关掉workbench,重新启动application,保留内存中的对象?
我们底层用的是SMACk,在3.0的版本中,已经实现了自动登陆的功能,但现在的问题出现在网络故障的那一步,我们所作的是调用 PlatformUI.getWorkbench().restart()方法,实现重启,并且使用IPreferenceStore来保存一些基本类型的数据信息。可是这样一来,内存中的所有对象就会被清理掉,新创建的ConnectionListener就无法监听到XMPPConnection的变化,于是UI就无法收到消息,从而不能自动登陆。
所以想问一下,有没有什么比较好的办法,可以在不调用PlatformUI.getWorkbench().restart()方法的情况下,关掉workbench,重新启动application,保留内存中的对象?
本文讨论了一个即时通讯(IM)系统在网络连接断开时如何正确处理并实现类似MSN和Skype的自动登录功能。作者介绍了使用SMACk 3.0版本进行开发的过程中遇到的问题:即如何在网络故障时关闭主程序并在连接恢复时自动重启应用而不丢失内存中的对象。
1635

被折叠的 条评论
为什么被折叠?



