Android 基于openfire即时聊天开发遇到的闪退问题:Already Login to Server

junjun071308 2014-11-17 12:02:14
在Android 客户端开发openfire即时聊天的时候,需求中有切换不同的用户的要求。

(注册用户没有问题)
登录的时候我是这样做的:connectServer-->login

下线的时候我是这么做的:disConnectServer

如果是有一个用户切换到另外一个用户,那么我是这样做的:disConnectServer-->connectServer-->login

由于网络等原因,会出现这样的情况,导致程序闪退:1.not connect to server 2.Already login to server

情况1、2出现的语句都是在login的时候。(ps:我在网络断开后重新连接网络时会去进行重新登录连接,我加了断线重连的监听,但是网络断线恢复后自动重新连接上的速度很慢,所以就自己手动重连)

所以想问一下,如何安全的确保已经成功连接上服务器的时候去登录、或者已经登录过了,那么就不再去登录

附1:登录代码
`

if (!xmppTool.isConnectedServer()) {
xmppTool.connServer();
}
if (xmppTool.isConnectedServer() && !xmppTool.getCon().isAuthenticated()) {
xmppTool.login(name, PWD);


`

附2:下线代码

if (xmppTool.isConnectedServer())
xmppTool.disConnectedServer()


附3:切换用户代码:

if (xmppTool.isConnectedServer())
xmppTool.disConnectedServer();

`if (!xmppTool.isConnectedServer())
xmppTool.connServer();

if (xmppTool.isConnectedServer() && !xmppTool.getCon().isAuthenticated())
xmppTool.login(newName, PWD);
...全文
474 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010951001 2015-12-16
  • 打赏
  • 举报
回复
楼主最后用的哪个包? 我现在一直都是Already Login to server 的问题
happyq 2015-06-27
  • 打赏
  • 举报
回复
引用 5 楼 junjun071308 的回复:
问题解决: 1.not connect to server 的问题需要在openfire服务器那边去设置,网络上搜索一下会有相关的教程,大概就是把安全选项里面的SSL什么的都设置为无效,同时在登录的时候,需要判断一下是否连接成功服务器,如果没有连接成功,那么就连接再去登录 2.Already Login to server 的问题,是我导入的那个smack版本的问题,也就是说这个问题的出现是我导入的包的一个bug,具体的bug描述是:该包的ReconnectManager里面的重新连接方法没有加入Synchronize进行加锁,然后导致了重连的时候会出现冲突,所以如果遇到这个问题的话,需要这样处理:1,看看你导入的这个包里面的ReconnectManager类中重连方法是否加锁,2,导入新包后重连速度快了很多,不需要再去自己手动重连了
楼主最后用的哪个包?
junjun071308 2014-12-04
  • 打赏
  • 举报
回复
问题解决: 1.not connect to server 的问题需要在openfire服务器那边去设置,网络上搜索一下会有相关的教程,大概就是把安全选项里面的SSL什么的都设置为无效,同时在登录的时候,需要判断一下是否连接成功服务器,如果没有连接成功,那么就连接再去登录 2.Already Login to server 的问题,是我导入的那个smack版本的问题,也就是说这个问题的出现是我导入的包的一个bug,具体的bug描述是:该包的ReconnectManager里面的重新连接方法没有加入Synchronize进行加锁,然后导致了重连的时候会出现冲突,所以如果遇到这个问题的话,需要这样处理:1,看看你导入的这个包里面的ReconnectManager类中重连方法是否加锁,2,导入新包后重连速度快了很多,不需要再去自己手动重连了
开发者_android 2014-11-18
  • 打赏
  • 举报
回复
xmpp及时聊天? 登录后,可以让服务器返回一个类似于令牌的东东,下次打开应用,请求直接带上这个东东去服务器进行验证就ok.
xiong1250 2014-11-18
  • 打赏
  • 举报
回复
可以判断是否已经登录成功啊,在断线重连接口加登录状态标准位
junjun071308 2014-11-17
  • 打赏
  • 举报
回复
引用 1 楼 Tibib 的回复:
应该在相应的回调方法中调用
不是很明白,能否给个相关的示例或者相关的教程链接
pobi 2014-11-17
  • 打赏
  • 举报
回复
应该在相应的回调方法中调用
代码转载自:https://pan.quark.cn/s/a4b39357ea24 自动驾驶是当前科技界高度关注的研究方向,其研究范畴涵盖了人工智能、计算机视觉、机器学习以及传感器融合等多个重要学科。这份题为"自动驾驶论文"的资料,无疑为人们提供了一个深入了解这一复杂系统的机会。以下是基于其标题和描述所呈现的一些关键知识点的详细阐述: 1. **自动驾驶技术**:自动驾驶指的是车辆在无需人类驾驶员参与的情况下,借助各类传感器和智能算法来感知周围环境,制定行驶路线,并执行驾驶行为。这种技术的核心宗旨在于提升交通安全性、缓解交通压力,并改善出行体验。 2. **Python编程语言**:Python是一种在数据处理和科学计算领域得到广泛应用的高级编程语言,由于其语法简洁且拥有丰富的库支持,经常被应用于自动驾驶领域的数据处理、模型构建和系统集成。 3. **源代码分析**:论文中提供的源代码可能包含了自动驾驶算法的实现细节,可能涵盖环境感知模块(包括图像处理、激光雷达数据解读)、决策模块(涉及路径规划、行为分析)、控制模块(涵盖车辆动力学建模、控制策略设计)等,这些代码可作为学习和研究自动驾驶算法的实践范例。 4. **计算机视觉**:自动驾驶系统中的计算机视觉技术主要用于识别道路标识、行人、其他车辆等,这通常涉及图像分类、目标识别和语义分割等任务,常见的技术包括卷积神经网络(CNN)、区域提议网络(RPN)、YOLO、Faster R-CNN等。 5. **机器学习**:机器学习是自动驾驶技术的核心,用于训练模型以理解和预测复杂的驾驶情境。深度学习,特别是深度强化学习,在决策制定和控制策略方面已取得显著进展。 6. **传感器融合**:自动驾驶汽车通常装备多种传...
内容概要:本文提出了一种改进的多旋翼无人机动态模拟的模块化仿真环境,基于Matlab/Simulink平台实现。该仿真环境通过模块化设计,集成了无人机的气动模型、动力系统模型、传感器模型及控制算法等多个关键子系统,能够精确模拟多旋翼无人机在复杂飞行条件下的动态响应特性。系统改进之处在于增强了模型的真实性和可扩展性,优化了仿真计算效率,并支持硬件在环(HIL)测试,便于控制算法的快速原型验证与迭代开发。该环境不仅可用于无人机飞控算法的设计与验证,也可服务于飞行器性能评估、故障诊断与容错控制等研究。; 适合人群:具备一定控制理论基础和Matlab/Simulink使用经验的高校研究生、科研机构研究人员及无人机相关领域的工程技术人员。; 使用场景及目标:①用于多旋翼无人机飞行动力学建模与仿真分析;②支持先进飞行控制算法(如PID、LQR、MPC、自适应控制等)的开发与验证;③作为教学工具帮助学生理解无人机系统构成与控制原理;④为无人机产品开发提供前期仿真测试平台,降低实飞风险与研发成本。; 阅读建议:建议读者结合Matlab/Simulink环境动手实践,逐步搭建并调试各个模块,重点关注各子系统间的接口关系与数据交互逻辑。同时可参考文中提供的仿真案例,深入理解参数设置对系统动态性能的影响,进而开展个性化功能扩展与算法创新。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 基于ARM Cortex-M内核的意法半导体(STMicroelectronics)STM32微控制器系列所构建的STM32 Modbus通信实例,是一种应用于工业通信领域的协议实践。该系列微控制器被广泛部署于多样化的嵌入式系统设计方案中。Modbus作为一种通用的串行通信规范,通常被用于可编程逻辑控制器(PLC)、监控与数据采集(SCADA)系统以及其他自动化装置之间的数据传输交互。在该实例中,STM32微控制器被设定为Modbus从设备角色,并借助RS-485接口完成数据交换。RS-485是一种符合标准的多点双线制接口,具备优越的抗干扰性能和长距离传输潜力,特别适合在工业环境中使用。 我们可以详细考察项目中的文件组织结构: 1. **HARDWARE**:此部分可能整合了STM32的硬件配置文档,涵盖GPIO、串口及DMA的初始化设定。在RS-485通信过程中,必须对STM32的串口工作模式进行配置,并激活RS-485的驱动与方向控制功能,以保证数据在适宜的时刻向正确的方向传输。 2. **SYSTEM**:一般包含了系统时钟配置与中断服务子程序。时钟配置是确保STM32正常运作的关键步骤,必须确认串口所需的时钟源已开启且符合通信速率的要求。中断服务子程序负责处理接收到的数据包或准备发送的数据。 3. **Output**:可能收集了程序运行期间的输出结果,例如日志文件或数据显示界面。在调试阶段,这些输出信息有助于剖析通信流程和数据传输的准确性。 4. **CORE**:可能收录了STM32的底层库函数,例如HAL库或LL库,用于操作CPU的核心功能。 5. **Proj...

80,489

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧