SetListAdapter方法调用不起作用吗?

时间:2014-06-16 20:48:12

标签: android

这里我有一个奇怪的问题,有一种刷新我的listview的方法:

 setListAdaptor();

无论何时更改状态以更新列表,每当我从我的服务(以适当的方式)调用此方法时:

  @Override
public void presenceChanged(Presence presence) {

       BusProvider.getInstance().post(new Reload());
     //  Log.i("XMPPChatDemoActivity ",presence.getFrom() + "presenceChanged    
 "+presence.getStatus());
   }

它不起作用,但是当我将方法绑定到onitemclick时,在listview上,它完美地完成了工作,是否有人知道为什么会这样?我也试过runOnUiThread!

1 个答案:

答案 0 :(得分:2)

使用Handler并且工作,但它真的很奇怪

我在片段中有SetAdapterList方法,因为片段不在主线程上运行 - 因为具有tab寻呼机的活动实际上是主线程,这就是为什么我们在片段中调用getactivity()而不是(这) - 我无法从非UI或非主要(主线程是UI线程)线程调用它,所以为此我需要创建一个方法(Handler mHandler = new Handler();)并使用它来发布我需要的内容在那里 - 使用静态方法或在我的情况下eventBus Otto< 3 - 那就是所有.. aaand所以它从OnListItemClick方法工作的原因是因为它显然是从UI线程调用..