簡體   English   中英

在不同的活動中必須調用單例socketIO類嗎?

[英]Have to call singleton socketIO class in different activities?

我正在為我的套接字編程使用gottox-socket.io庫。 我已經為套接字創建了單例類。 我可以在主要活動中調用它,但不能在其他活動中調用它。這是我的單例課程。

public class MainActivity extends Activity {
    EditText uname, passwd;
    Button login;
    JSONObject json;
    SocketIOClient socket;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    socket = new SocketIOClient();
    try {
        SocketIOClient.initInstance();
    } catch (MalformedURLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    json = new JSONObject();
    uname = (EditText) findViewById(R.id.unameED);
    passwd = (EditText) findViewById(R.id.passwdED);
    login = (Button) findViewById(R.id.loginButton);
    login.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            try {
                json.put("username", uname.getText().toString().trim());
                json.put("password", passwd.getText().toString().trim());
              //request send to server    
                SocketIOClient.emit("login_request", json);

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });

}

} 

我也使用抽象類從單例類到活動獲取json倉庫。 這是我的抽象課

    public abstract class ResponseHandler 
{
    private Context context;

    public abstract void execute (JSONObject jsonObject) throws JSONException;

    public ResponseHandler (Context ctx)
    {
        this.context = ctx;
    }

    public void handleObject(JSONObject jsonObject) throws Exception
    {
        execute(jsonObject);

    }
}

您是否考慮過在幫助程序包(例如com.project.name.helpers)中創建GlobalClass並從那里調用它。 喜歡

public class GlobalClass extends Activity {
    public static SocketIOClient socket = new SocketIOClient();
}

然后,您可以在導入GlobalClass之后從您的活動中調用它,因為它是一個靜態的並且已經創建的類,例如:

import com.project.name.helpers;
public SomeActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try{
            GlobalClass.socket.initInstance();
        }
        catch{
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM