我在Android应用程序中使用EventBus。在我的mainActivity中,我有这个处理程序方法,它将实时数据发送到EventBus,如下所示:
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case TGDevice.MSG_STATE_CHANGE:
EventBus.getDefault().postSticky(msg.arg1);
...
我正在使用Fragments类,我需要从处理程序接收消息。
我在onCreateView方法中注册了Fragment类,如下所示:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_data_log, container, false);
EventBus.getDefault().register(this);
tv = (TextView) view.findViewById(R.id.tv);
}
public void onEvent(Message message){
tv.setText("Signal" + message);
}
我有onEvent方法,假设在有事件时被调用。不幸的是,这种方法从未被调用。我认为它可能是被覆盖的方法,但它似乎并不存在。
我需要做什么才能阅读来自EventBus的消息?
此外,在调试模式下,我在哪里可以看到正在创建的线程数? (我使用的是Android Studio)
答案 0 :(得分:5)
不幸的是,这种方法永远不会被称为
这是因为您的onEvent()
需要Message
,并且(大概)您没有发布Message
。您正在发布arg1
的所有内容。
此外,在调试模式下,我在哪里可以看到正在创建的线程数? (我正在使用Android Studio)
从主菜单进入Android调试监视器(工具> Android> Android调试监视器),里面有DDMS中的线程视图。