我正在使用XMPP
和asmack
处理聊天应用程序。在启动Activity
时,我想建立XMPP
连接,然后在不同的活动中使用它。但我不知道该怎么做。我搜索了很多关于它但无法找到任何理想的解决方案。请指导我。
答案 0 :(得分:2)
您可以将Connection
成员设为静态,并选择允许其他活动访问该成员的访问级别修饰符关键字。
但是,您通常不希望在Activity中处理Connection
,而是在扩展Service
的类中处理。有很多开源应用程序使用aSmack,看看它们的来源。
答案 1 :(得分:2)
您可以使用此类设置连接并将其放在其他活动中的任何位置
public class XMPPLogic {
private XMPPConnection connection = null;
private static XMPPLogic instance = null;
public synchronized static XMPPLogic getInstance() {
if(instance==null){
instance = new XMPPLogic();
}
return instance;
}
public void setConnection(XMPPConnection connection){
this.connection = connection;
}
public XMPPConnection getConnection() {
return this.connection;
}
}
并像这样设置连接..
XMPPLogic.getInstance().setConnection(connection);
并获得这样的连接..
connection = XMPPLogic.getInstance().getConnection();
答案 2 :(得分:1)
您可以使用单例设计模式或创建实用程序类并将xmpp连接定义为静态,然后您可以在任何活动中使用它。
对于单身人士来说是这样的:
public class MyConnection{
private static MyConnection con;
private MyConnection(){
//ToDo here
}
public static MyConnection getInstance()
{
if (con == null)
{
MyConnection= new MyConnection();
}
return con;
}
}
然后在任何活动中,您都可以通过键入MyConnection.getInstance();