【发布时间】:2011-10-07 14:30:48
【问题描述】:
我想要的是一个可以追溯的 Chronometer UI 组件。在标准 Chronometer 中,UI chronometer 数据上显示的所有需要的方法都是私有的或最终的,因此无法更改其行为。 实现自己的计时器我只能想象使用 Timer 并根据状态扩展 View 并在画布上绘制计时器数据。但在这种情况下,我无法修改视图,因为所有调用都来自另一个线程,因为计时器在另一个线程中调用其计划任务。所以我得到了CallFromWrongThreadException。 我看了一下标准 Chronometer 是如何实现的。在那里我找到了
@android.view.RemotableViewMethod
public void setBase(long base) {
mBase = base;
dispatchChronometerTick();
updateText(SystemClock.elapsedRealtime());
}
无法进入@android.view.RemotableViewMethod注解里面。这里有什么魔力? Chronometer 如何根据时间变化更新视图?有没有我可以监听的事件,比如 SystemTimeChange..?
【问题讨论】: