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

时间:2018-04-17 23:09:08

标签: java android android-studio xmpp xmppframework

我有一个名为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()方法时,我必须得到创建的连接的实例,因为{{1如果我在连接已经启动时尝试重新连接,将会发生!所以我需要通过创建一个名为Smack Error的方法来提供该启动连接的实例。我想这可能很简单,但我已经尝试但我没有得到它。有没有更好的处理方式?

1 个答案:

答案 0 :(得分:0)

例如,使您的xmppchatmanager为单例

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

   public static XmppChatManager getInstance(){
        return Loader.sInstance;
   }
}