我创建了对象蓝牙服务,其中创建了线程,它监视队列中的数据。从main-activity创建了一个活动,我可以在其中设置数据。我如何将数据从此活动传递到线程以发送消息,并通过对象蓝牙服务?
答案 0 :(得分:0)
您是否考虑使用可以保存需要发送的消息的静态类,然后可以使用Observer pattern(如果需要)通知线程它有新消息要发送
答案 1 :(得分:0)
我使用https://github.com/greenrobot/EventBus。这将简化代码。您需要做的只是here。在您的情况下,您需要:
添加渐变依赖
compile 'de.greenrobot:eventbus:2.4.0'
创建事件类:
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;
...
}
}
创建订阅者:
@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);
}
最后发布您的数据:
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
如果这有帮助,请告诉我。