2013-05-22 2 views
0

У меня возникла следующая проблема. Мое приложение имеет 5 видов деятельности и работает в качестве TCP-клиента. Если я запустил приложение, начнется действие 1 и установит соединение с сервером.Как использовать методы из существующей текущей нити в разных действиях

Эта деятельность владеет слушателем для получения данных.

public void messageReceived(final String message) { 
     RemoteActivity.this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
       RemoteActivity.this.GetMessage(message);        
     } 
     }); 
} 

Теперь мой вопрос: есть ли возможность использовать эту тему в других мероприятиях? Как я могу добавить больше слушателей из других действий в эту тему?

Спасибо за подсказки Ребята :)

ответ

1

Вы просто сделать ваш 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; 
    } 

} 

Приветствия

Смежные вопросы