创建 Xmpp 连接并在不重新创建的情况下传递实例的最佳方式



我有一个名为XmppChatManager的类,它具有所有必要的方法,如initializingConnection()sendOneToOneMessage(),其他需要使用此类的类需要做这样的事情:

XmppChatManager xmppchatmanager = new XmppChatManager(this, userId, password);

runOnUiThread(new Runnable() {
public void run() {
Thread thread = new Thread(){
public void run(){
try {
xmppchatmanager.initializingConnection();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
} catch (SmackException e) {
e.printStackTrace();
}
}
};
thread.start();
}
});

这几乎是我开始所需要的一切,我遇到的问题是当我尝试从chatClass调用sendOneToOneMessage()方法时,我必须获取所创建连接的实例,因为如果我尝试在连接已经启动时重新连接,就会发生Smack Error!所以我需要通过创建一个名为getInstance()的方法来提供该已启动连接的实例,我想这可能很简单,但我已经尝试过,但我没有得到它。有没有更好的处理方法吗?

例如,让你的 xmppchatmanager 成为单例

public class XmppChatManager{
static class Loader{
static XmppChatManager sInstance = new XmppChatManaget();
}
public static XmppChatManager getInstance(){
return Loader.sInstance;
}
}

相关内容

最新更新