这是我的代码
public void invalidateWidget(boolean invalidateUsingCaches) {
mUpdatingWidget = true;
if (invalidateUsingCaches) {
widget.invalidateUsingCaches();
if (widget.isRefreshRequired()) {
widget.initializeRefreshRequired();
mWidgetUpdateHandler.removeMessages(handlerMessage);
mWidgetUpdateHandler.sendEmptyMessageDelayed(handlerMessage,
handlerDelay);
}
} else {
widget.invalidate(false);
}
refreshImageView();
mUpdatingWidget = false;
}
此行
mWidgetUpdateHandler.sendEmptyMessageDelayed(handlerMessage,
handlerDelay);
导致imageview不能更新Android版2.3手机上的更改,但适用于较新的Android版本。
到目前为止,我已尝试过以下内容:
imageview.invalidate();
activity.runOnUiThread();
请记住,代码适用于较新的Android版本。它应该适用于所有版本,因为代码遵循Android准则。
有没有人知道为什么会发生这种情况?解决方案?
MessageQueue有什么事要做吗?
答案 0 :(得分:0)
问题在于为imageview提供新的位图。在handler的handleMessage()中,我给imageview提供了新的位图,导致它不会随着更改而刷新。处理程序运行正常。虽然我仍然不明白为什么imageview拒绝旧的Android版本上的新位图。
我通过保持相同的位图来解决问题。