在另一个 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()
研究接口是如何工作的(你将不得不实现一些监听器),不要放弃,但要尝试理解面向对象编程的基础知识(就在这个答案中单例、接口、静态变量)
这个问题与我在这里的最后一个问题有关 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()
研究接口是如何工作的(你将不得不实现一些监听器),不要放弃,但要尝试理解面向对象编程的基础知识(就在这个答案中单例、接口、静态变量)