我遇到以下问题。我的应用程序有5个活动,并作为TCP客户端工作。如果我启动该应用程序,活动1将开始并与服务器建立连接。
此活动拥有用于获取传入数据的侦听器。
public void messageReceived(final String message) {
RemoteActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
RemoteActivity.this.GetMessage(message);
}
});
}
现在我的问题是:是否有可能在其他活动中使用此线程?如何将其他活动中的更多侦听器添加到此线程?
谢谢你的提示伙计们:)
最佳答案
您只需将TCPWorker设置为单例,就可以从其他活动中访问它。请注意,使用完线程后,您需要关闭该线程,否则它将一直运行,直到android杀死您的应用程序为止。
一个例子:
public class TCPWorker {
//Your static worker object
private static TCPWorker worker;
private TCPListener listener;
//The method that activities use to access your TCPWorker object
public static TCPWorker worker() {
if (worker == null) {
worker = new TCPWorker();
}
return worker;
}
//Make your constructor private, activities should only access your worker from the singleton method.
private TCPWorker() {
//Initialize the worker
}
public void setTCPListener(TCPListener listener) {
this.listener = listener;
}
public void getTCPListener() {
return this.listener;
}
}
干杯