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

前端之家收集整理的这篇文章主要介绍了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()

猜你在找的Android相关文章