这里我有一个奇怪的问题,有一种刷新我的listview的方法:
setListAdaptor();
无论何时更改状态以更新列表,每当我从我的服务(以适当的方式)调用此方法时:
@Override
public void presenceChanged(Presence presence) {
BusProvider.getInstance().post(new Reload());
// Log.i("XMPPChatDemoActivity ",presence.getFrom() + "presenceChanged
"+presence.getStatus());
}
它不起作用,但是当我将方法绑定到onitemclick时,在listview上,它完美地完成了工作,是否有人知道为什么会这样?我也试过runOnUiThread!
答案 0 :(得分:2)
使用Handler并且工作,但它真的很奇怪
我在片段中有SetAdapterList方法,因为片段不在主线程上运行 - 因为具有tab寻呼机的活动实际上是主线程,这就是为什么我们在片段中调用getactivity()而不是(这) - 我无法从非UI或非主要(主线程是UI线程)线程调用它,所以为此我需要创建一个方法(Handler mHandler = new Handler();)并使用它来发布我需要的内容在那里 - 使用静态方法或在我的情况下eventBus Otto< 3 - 那就是所有.. aaand所以它从OnListItemClick方法工作的原因是因为它显然是从UI线程调用..