如果我需要每秒更新UI组件(如textview),只要活动可见即可。你会建议创建一个执行postOnUi调用的线程(使用thread.sleep)或者我是否使用postDelayed处理程序?
如果我有多个textviews
,我不确定哪个更有效率感谢?
答案 0 :(得分:2)
我认为你在混淆一些概念。 Handler
的{{1}}确实会在一段时间过后运行postDelayed()
,但只会运行一次。
对于你想做的事,你有几个选择:
Runnable
就是其中之一。不利于此,Thread
可能会导致异常,这样您的执行可能会变得不稳定。此外,您只有一个Thread
即使它正在睡觉也不会释放它,因此您正在使用一次可能不需要的资源。Thread
。但是,对于简短的任务,建议使用此方法。如果您计划在较长一段时间内运行此任务,AsyncTask
可能不是一个好的选择。AsyncTask
运行后台Service
来更新用户界面。取决于你想要达到的目标。Handler
。它有一个名为ScheduledExecutorService
的方法,它将完全执行该操作,在其中一个参数指定的每个X时间内执行scheduleAtFixedRate()
。更多信息here。