Android PostDelayed或带有Thread.sleep()的线程
如果我需要每秒钟更新一次UI组件(如textview),只要活动可见。您建议创建一个线程(使用thread.sleep)来调用postOnUi,还是使用处理程序来处理postDelayed 如果我有多个文本视图,我不确定哪一个更有效Android PostDelayed或带有Thread.sleep()的线程,android,Android,如果我需要每秒钟更新一次UI组件(如textview),只要活动可见。您建议创建一个线程(使用thread.sleep)来调用postOnUi,还是使用处理程序来处理postDelayed 如果我有多个文本视图,我不确定哪一个更有效 谢谢?我想你把一些概念弄混了处理程序的postDelayed()确实会在一段时间后运行Runnable,但只运行一次 对于您想做的事情,您有几种选择: 睡眠线程就是其中之一。这样做的一个缺点是线程可能会导致异常,这样您的执行可能会变得不稳定。此外,您将只有一个线程
谢谢?我想你把一些概念弄混了<代码>处理程序的
postDelayed()
确实会在一段时间后运行Runnable
,但只运行一次
对于您想做的事情,您有几种选择:
- 睡眠
就是其中之一。这样做的一个缺点是线程
可能会导致异常,这样您的执行可能会变得不稳定。此外,您将只有一个线程
,即使它处于睡眠状态,您也无法释放它,因此您正在使用一次可能不需要的资源线程
- 另一种方法是使用
。但是,对于短期任务,建议这样做。如果计划长时间运行此任务,AsyncTask
可能不是一个好选择AsyncTask
- 您可以使用
处理程序运行后台
,以更新UI。取决于你想要达到的目标服务
- 您可能想看看
。它有一个名为ScheduledExecutorService
的方法,该方法将准确地执行该操作,在其中一个参数指定的每个X时间执行一个scheduleAtFixedRate()
。更多信息Runnable
线程加载到内存中,因此它不会被释放,而是等待下一次执行。然而,这不应该是一个问题,但是你问到了效率,所以我只是注意到了这一点。对于UI问题,请查看以下内容,这可能会有所帮助: