安卓系统:计算和更新文本视图而不挂起用户界面



所以我想让SeekBar像油门踏板一样工作。

当它处于中性位置(进度=50)时,我的值不会改变。当SeekBar进度大于或小于50时,我从50中取差值,并用它来计算一个推送到TextView的值。

这种对值的加减并不是因为进度发生了变化,而是基于进度在该进度点保持的时间。这意味着你离50越远,数值上升得越快,或者在另一个方向上下降得越快。

我的第一个想法是一个线程,它有一个while循环,可以休眠,然后更新值。我在全球范围内存储了SeekBar的进度。这适用于计算我的值,但因为它不在UI线程上运行,我无法从中更新UI

我该如何让这个"油门踏板"SeekBar工作?

这一切都可以在UI线程中运行。使用postDelayed运行一个处理程序来偶尔更新您的"速度表"(请求250毫秒似乎可以)。无论处理程序实际运行的频率如何,您都将使用实际经过的时间,而不是请求的间隔来计算速度表更新。(在任何物理模拟中都必须这样做,因为无论更新函数被调用的频率或不规则程度如何,现实世界都会继续运行。)

您需要在此处使用AsyncTask

最新更新