安卓计时器可以倒退麻烦

时间:2011-10-07 14:30:48

标签: android android-widget

我想要的是一个可以追溯的Chronometer UI组件。在标准天文台中,在UI计时器数据上显示的所有需要​​的方法都是私有或最终的,因此改变其行为是不可能的。 实现自己的天文台我只能想象使用Timer并根据状态扩展View并在画布上绘制天文台数据。但在这种情况下,我无法修改视图,因为所有调用都来自另一个线程,因为计时器在另一个线程中调用其计划任务。所以我得到了CallFromWrongThreadException。 我看了一下标准天文台是如何实现的。在那里我找到了

@android.view.RemotableViewMethod
    public void setBase(long base) {
        mBase = base;
        dispatchChronometerTick();
        updateText(SystemClock.elapsedRealtime());
    }

无法进入内部的@ android.view.RemotableViewMethod注释。这里的魔力是什么? Chronometer如何根据时间变化更新其视图?是否有一些我可以收听的事件,如SystemTimeChange ..?

2 个答案:

答案 0 :(得分:0)

尝试使用runOnUIThread或handler.post

答案 1 :(得分:0)

实现了自己的chronometr扩展TextView,带有一个计时器任务和处理程序,它从计时器任务线程获取消息。