我是新的programmer.i想通过使用xmpp server实现示例应用程序来获取聊天.在这个实现中,我通过使用ConnectionConfiguration对象创建了连接,如下所示:
ConnectionConfiguration connConfig =new ConnectionConfiguration(host, Integer.parseInt(sport), service);
Run Code Online (Sandbox Code Playgroud)
我通过调用connect方法将connConfig对象传递给XMPPConnection类我正在获取连接并通过调用登录方法传递用户名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, Integer.parseInt(sport), service);
connection = new XMPPConnection(connConfig);
connection.connect();
connection.login(uname, password);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我写了如下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
}
}
Run Code Online (Sandbox Code Playgroud)
如何从LoginActivity到ChatPageActivity获得相同的连接?
请任何身体帮助我
小智 14
使用单例模式(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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的LoginActivity上设置连接:
XMPPLogic.getInstance().setConnection(connection);
Run Code Online (Sandbox Code Playgroud)
在ChatPage中你得到它:
XMPPLogic.getInstance().getConnection().doStuff()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2940 次 |
| 最近记录: |