我使用eventbus來更新TextView,但不是第一次工作,當我改變它的第二個工作後,但我不知道它是如何工作的。打電話給你幫我嗎?非常感謝。以下是我的代碼。 第一它不工作TextView setText()有時不起作用
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(Event event) {
final Event loca = event;
System.out.println("---sta--" + "onEvent");
if (!isVisible || !isLoad) {
return;
}
System.out.println("---sta--" + "visonEvent" + loca.getAddress()+TextUtils.isEmpty(loca.getAddress()));
txtLocationDetails.setText(String.format("address:%s", TextUtils.isEmpty(loca.getAddress()) ? "" : loca.getAddress()));
offset = 0;
initDatas();
}
,但我改變下面的代碼它的工作
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(Event event) {
final Event loca = event;
System.out.println("---sta--" + "onEvent");
if (!isVisible || !isLoad) {
return;
}
System.out.println("---sta--" + "visonEvent" + loca.getAddress()+TextUtils.isEmpty(loca.getAddress()));
txtLocationDetails.post(new Runnable() {
@Override
public void run() {
txtLocationDetails.setText(String.format("address:%s", TextUtils.isEmpty(loca.getAddress()) ? "" : loca.getAddress()));
}
});
offset = 0;
initDatas();
}
我不知道爲什麼它的確定,你能告訴我嗎?謝謝。
閱讀http://stackoverflow.com/questions/13840007/what-exactly-does-the-post-method-do –
使用廣播接收器。 – Noorul
相關討論:http://stackoverflow.com/questions/29040333/eventbus-not-on-the-main-thread –