一个RCP的IM应用,请教关于网络故障及恢复的处理方法

本文讨论了一个即时通讯(IM)系统在网络连接断开时如何正确处理并实现类似MSN和Skype的自动登录功能。作者介绍了使用SMACk 3.0版本进行开发的过程中遇到的问题:即如何在网络故障时关闭主程序并在连接恢复时自动重启应用而不丢失内存中的对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前是一个IM系统,需要在网络连接断开的时候,关掉主程序,回到登陆对话框,并且在网络连接恢复的时候,可以自动登陆,类似于MSN和Skype的功能。

我们底层用的是SMACk,在3.0的版本中,已经实现了自动登陆的功能,但现在的问题出现在网络故障的那一步,我们所作的是调用 PlatformUI.getWorkbench().restart()方法,实现重启,并且使用IPreferenceStore来保存一些基本类型的数据信息。可是这样一来,内存中的所有对象就会被清理掉,新创建的ConnectionListener就无法监听到XMPPConnection的变化,于是UI就无法收到消息,从而不能自动登陆。

所以想问一下,有没有什么比较好的办法,可以在不调用PlatformUI.getWorkbench().restart()方法的情况下,关掉workbench,重新启动application,保留内存中的对象?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值