跨Android活动携带SmartFoxServer连接

时间:2010-09-26 15:36:54

标签: android

我正在使用SmartFoxServer进行多人游戏。我在主聊天室加载时工作正常。在我的应用程序中,您创建了新的游戏室,当您单击其中一个时,它会启动一个新活动并进入该房间。看来我必须在此之后再次连接到服务器。然后我就已经登录错误了。

如何在整个活动中维护smartfox客户端?

1 个答案:

答案 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分钟的空闲时间时,我会更详细地查看这个; - )