好的,所以我有一个广播接收器被调用,并且在onReceive()
方法中,我使用静态数据更新了一个带有新适配器的图库,所有这些都是在UI线程上完成的。
然而,没有任何改变。旧数据保留在库中,但是当我调试我的代码并花时间在调用invalidate之后更新。哦,顺便说一下,视图在ViewFlipper中,但在创建新适配器之前我改为正确的视图。所以我有竞争条件,这是正常的吗?如果不是,我该怎么办?
下面是我在onRecieve()
中讨论的一个示例。
onRecieve() {
mFlipper.setDisplayedChild(0);
mNavAdapter.addCategory(-1);
mGalNav.setSelection(0);
getCategoryProducts(-1);
}
void getCategoryProducts(int category) {
mGalProducts.setAdapter(new DealCheckInAdapter(this,
getCheckInProducts()));
mGalProducts.invalidate();
}
答案 0 :(得分:1)
invalidate()
方法不应该做我猜你认为它会做的事情。你想使用:
mDealCheckInAdapter.notifyDataSetChanged();
这是“刷新”listView适配器的方法。