从所有活动访问TCP套接字

时间:2014-01-31 19:09:07

标签: android multithreading sockets tcp singleton

我想在第一个活动中按下按钮时创建TCP套接字,然后从任何活动访问同一个套接字对象(不确定在每个活动中关闭和打开套接字是个好主意)。

我尝试了很多方法让我的思想设置在Singleton实例上是通过任何活动访问对象的最佳解决方案,我的问题是因为这是一个TCP套接字我没有看到AsyncTask是聪明的想法(可以只执行一次,无视我有一个对象实例的观点)我不知道如何将常规线程与单例组合。

单身人士代码:

public class TCPSingleton extends Application {

    private static TCPSingleton singleInstance;
    String HostIP;
    int tcp_port;
    Socket clientSocket;
    DataOutputStream outToServer;


    public static TCPSingleton getInstance() {
      return singleInstance;
    }

    @Override
    public void onCreate() {
      super.onCreate();  
      singleInstance = this;
      singleInstance.initializeInstance();
    }

    protected void initializeInstance() {
        this.HostIP = "10.0.0.6";
        this.tcp_port = 9871;
        try {
            this.clientSocket = new Socket(this.HostIP, this.tcp_port);
            this.outToServer = new DataOutputStream(clientSocket.getOutputStream());

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

    public void send_data(String data){

        try {
            this.outToServer.writeBytes(data);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

如何在这里合并一个帖子(或者除了单身之外还有什么比这更好的想法)。

0 个答案:

没有答案