我正在使用SmartFoxServer进行多人游戏。我在主聊天室加载时工作正常。在我的应用程序中,您创建了新的游戏室,当您单击其中一个时,它会启动一个新活动并进入该房间。看来我必须在此之后再次连接到服务器。然后我就已经登录错误了。
如何在整个活动中维护smartfox客户端?
答案 0 :(得分:3)
您可以覆盖Application类,并使您的服务器引用一个静态公共变量,该变量可以使用((YourApplication)getApplication()).yourStaticServerReference
从任何Activity中获得。
要覆盖Application类,请执行以下步骤:
创建一个扩展Application的类,我们称之为com.yourpackage.YourApplication
package com.yourpackage;
import android.app.Application;
public class YourApplication extends Application {
public static SmartFoxServer smartFoxServer;
@Override
public void onCreate() {
smartFoxServer = initSmartFoxServer(); // I don't know SmartFoxServer's API so let's imagine you implement this somewhere in the Application class.
// Now the smartFoxServer field is like a global variable visible in all your Activities using ((YourApplication)getApplication()).smartFoxServer
}
}
在您的应用程序清单中,您必须编辑应用程序声明:
@Override
public void onCreate() {
smartFoxServer = initSmartFoxServer(); // I don't know SmartFoxServer's API so let's imagine you implement this somewhere in the Application class.
// Now the smartFoxServer field is like a global variable visible in all your Activities using ((YourApplication)getApplication()).smartFoxServer
}
}
如果您经常访问smartFoxServer对象,您甚至可以使用java 1.5静态导入功能:
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name="com.yourpackage.YourApplication">
我直接在这里写了这个,所以可能有些问题......当孩子们给我超过2分钟的空闲时间时,我会更详细地查看这个; - )