Я использую 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 –