在另一个 activity Android 中使用 Socket

Use Socket in another activity Android

这个问题与我在这里的最后一个问题有关 现在我可以迁移到另一个 Activity 但我不知道使用从previous Activity,也从服务器发送和接收响应。请帮帮我:(

我已经发布了您之前关于如何正确连接到 Socket 的问题的答案,因为 AsyncTask 确实是基本解决方案,如果之前的 Activity 终止,它最终会终止(我不太确定当 AsyncTasks 正好死去的时候)。 @ginc0de 建议完美的解决方案。例如研究一些关于 Singleton 的东西......我认为这是解决你问题的最佳方法。

public class ConnectThread extends Thread {

    // singleton Part

    private static ConnectThread instance;

    public static ConnectThread getInstance(){
        return (instance == null) ? instance = new ConnectThread() : instance;
    }

    private ConnectThread(){
    }

    // implementation part
    private Socket mSocket;

    public Socket getSocket() {
        return mSocket;
    }

    @Override
    public void run() {
        mSocket = new Socket();
        // connect etc.
    }
}

首先你必须在某处调用ConnectThread.getInstance().start()(启动线程不超过一次)然后你应该通过调用ConnectThread.getInstance().getSocket()在任何地方获得套接字完成通信或离开应用程序(这是困难的部分,而且我真的不认为你应该在多个活动中处理套接字)你必须关闭线程(interrupt()) and socket in it (override the interrupt() method and call Socket.close()

注意方法 Activity.runOnUiThread() 研究接口是如何工作的(你将不得不实现一些监听器),不要放弃,但要尝试理解面向对象编程的基础知识(就在这个答案中单例、接口、静态变量)