微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何从一个活动到另一个活动获得相同的xmpp连接?

我是新的programmer.i想使用xmpp服务器实现示例应用程序来获取聊天.在这个实现中,我已经使用ConnectionConfiguration对象创建了连接,如下所示:
ConnectionConfiguration connConfig =new ConnectionConfiguration(host,Integer.parseInt(sport),service);

我将connConfig对象传递给XMPPConnection类,通过调用connect方法我正在获取连接,并通过调用login方法传递用户名pand密码然后我登录到password.to登录我正在使用一个按钮.当我点击按钮我正在使用意图改变活动.一个我正在改变活动,我想在另一个活动中获得相同的连接.

我已经编写了LoginActivity的代码,如下所示:

public class LoginActivity extends Activity
 {

ConnectionConfiguration connConfig ;

 XMPPConnection connection;



  @Override
 protected void onCreate(Bundle savedInstanceState) 
  {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.setting);


    ((Button)findViewById(R.id.login)).setonClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) 
           {

             connConfig =new ConnectionConfiguration(host,service);

          connection = new XMPPConnection(connConfig);

            connection.connect();
            connection.login(uname,password);

        }
});

 }
}

我写了ChatPageActivity如下:

public class ChatPage extends Activity {

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.chatpage);

    //How to get the same XMPPConnection from LoginActivity here    

     }
  }

如何从LoginActivity到ChatPageActivity获得相同的连接?

请任何身体帮助我

解决方法

使用单例模式( http://en.wikipedia.org/wiki/Singleton_pattern)创建一个新类(在一个新的.java文件中),您可以从应用程序的任何一个位置保持当前的活动连接.

可能解决方

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;
  }

}

然后,在您的LoginActivity上设置连接:

XMPPLogic.getInstance().setConnection(connection);

在ChatPage中,您可以得到它:

XMPPLogic.getInstance().getConnection().doStuff()

原文地址:https://www.jb51.cc/android/311512.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐