2015-07-08 2 views
0

Я создал объект bluetooth-service, где был создан поток, который контролирует данные в очереди. Из основной деятельности была создана одна деятельность, где я могу установить данные. Как я могу передавать данные из этой активности в поток для отправки сообщений, с передачей объекта bluetooth-сервиса?как передать данные из не основной деятельности в поток

+0

Показать у нас код соответствия и показать нам, где вы боретесь. Мы постараемся вам помочь, но мы не будем указывать полный веб-сайт для вас. – bish

ответ

0

ли вы думаете об использовании статического класса, который бы сохранить сообщение, Вам необходимо отправить, то, возможно, использовать Observer pattern (при необходимости) для уведомления нити у него есть новое сообщение, чтобы отправить

+0

Я могу передать объект этот статический класс из основного действия во вторую активность через намерение? – Sauber

+0

нет, поскольку класс статичен (подумайте об использовании Singleton), вам нужно только каждый раз получать экземпляр (статическое значение: http://stackoverflow.com/questions/413898/what-does-the-static-keyword-do- in-a-class), а затем запросить значение, подобное 'Singleton.getInstance(). getValue()' – Bxtr

+0

спасибо, я надеюсь, это поможет мне – Sauber

0

Я использую https://github.com/greenrobot/EventBus для что. Это упростит код. Все, что вам нужно сделать, это here. В вашем случае вам необходимо:

  1. Добавить graddle зависимость

    compile 'de.greenrobot:eventbus:2.4.0'

  2. создать класс событий:

    public class MessageEvent { 
        public final String message; 
        public YourObject object;//use what you need here to pass data. 
    
        public MessageEvent(String message) { 
         this.message = message; 
         ... 
        } 
    } 
    
  3. Создать Подписчики:

    @Override 
    public void onStart() { 
        super.onStart(); 
        EventBus.getDefault().register(this); 
    } 
    
    @Override 
    public void onStop() { 
        EventBus.getDefault().unregister(this); 
        super.onStop(); 
    } 
    
    // This method will be called when a MessageEvent is posted 
    public void onEvent(MessageEvent event){ 
        Toast.makeText(context, event.message,  Toast.LENGTH_SHORT).show(); 
    } 
    
    // This method will be called when a SomeOtherEvent is posted 
    public void onEvent(SomeOtherEvent event){ 
        doSomethingWith(event); 
    } 
    
  4. И, наконец, опубликовать данные:

    EventBus.getDefault().post(new MessageEvent("Hello everyone!")); 
    

Позвольте мне знать, если это помогло.

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