2012-07-05 39 views
5

我正在使用XMPP连接(使用smack)进行Android应用程序中的聊天。我已经与openfire进行了连接,并且还可以发送和接收消息。但问题是当我进入XMPPClient.java活动,然后它进行连接。所以我不能得到任何消息,直到不去在该活动。因此,如何可以在起始连接,然后在其他活动重用。代码是在这2链接ConnectionSettings file和我们可以聊天的chatscreen。在这个链接的评论栏也是我的问题,所以请也看到这个评论。在应用程序中保持XMPP连接(使用smack)

回答

4

创建全局XMPPConnection对象并使用下面的funciton并存储在全局XMPPConnection对象中,并在任何地方使用该连接对象。这是一个示例gtalk示例。

public XMPPConnection login() throws XMPPException { 

     ConnectionConfiguration config = new 
     ConnectionConfiguration("talk.google.com",5222,"gmail.com"); 
     config.setSecurityMode(SecurityMode.required); 
     config.setTruststoreType("BKS"); 
     config.setTruststorePath("/system/etc/security/cacerts.bks"); 
     XMPPConnection connection = new XMPPConnection(config);   
     connection.connect(); 
     connection.login(username, password); 
     Presence presence = new Presence(Presence.Type.available); 
     presence.setMode(Presence.Mode.available); 
     connection.sendPacket(presence); 
     try { 
      Thread.sleep(3000); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    return connection; 
} 
+0

可以ü请参阅我的问题中,我有我写的连接code.So第一个链接我如何可以使用任何其他活动吗?或者您能不能给一些代码,获得清晰的概念。 – Nency 2012-07-05 11:23:32

+0

存在状态=新状态(Presence.Type.available); connection.sendPacket(presence); xmppClient.setConnection(connection);在这段代码中,setconnection sunction仅在XMPPClient.java文件中,所以我如何在不同的活动中使用此代码。 – Nency 2012-07-05 11:25:39

+1

先告诉我你想要什么。请解释清楚。 – 2012-07-05 11:32:18

相关问题