当前位置: 代码迷 >> Android >> Android 基于openfire即时聊天开发遇到的闪退有关问题:Already Login to Server
  详细解决方案

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

热度:89   发布时间:2016-04-28 03:34:22.0
Android 基于openfire即时聊天开发遇到的闪退问题:Already Login to Server
在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);

------解决思路----------------------
应该在相应的回调方法中调用
------解决思路----------------------
可以判断是否已经登录成功啊,在断线重连接口加登录状态标准位
------解决思路----------------------
xmpp及时聊天?
登录后,可以让服务器返回一个类似于令牌的东东,下次打开应用,请求直接带上这个东东去服务器进行验证就ok.
  相关解决方案