2013-03-21 80 views
1

如何在自定义类的UI线程上运行Runable? “runOnUiThread(Runnable)”方法可以完成工作,但它是Activity的一部分。我想知道Application类是否支持类似的东西,因为它很容易获得它的一个实例。 我已经阅读了关于androidannotation框架中的注释“@UiTread”。这个注释是否也适用于自定义类?如何在自定义类的UI线程上运行Runnable

+0

请问为什么你不使用AsyncTask,如果你需要从另一个类更新你的主UI线程上的东西? – Droidman 2013-03-21 22:43:03

回答

1

您可以使用一个HandlerView.post(Runnable)

+0

如果使用选项一:确保在UI线程上创建处理程序(或传入创建的循环),因为处理程序与“当前线程”关联 - 换句话说:它是线程创建于。 – 2013-03-21 22:18:32

+0

实际上有一个技巧。创建它时,只需将主要活套交给处理程序即可。主循环是在UI线程中运行的主循环。 'mHandler = new Handler(Looper.getMainLooper());' – SimonSays 2013-03-21 22:25:45

+0

我知道,这是我之前评论中括号内的部分。 ;)无论如何,只是认为值得指出OP。 – 2013-03-21 22:42:09

1

我建议你避免在UI线程上运行一个Runnable。关于我能想到做这件事的唯一原因是做某种计时器,它会在退出之前“睡眠”一段时间。一般来说,通过在Android框架之外使用Threads,Runnables等,可能会导致很多性能问题。并不是说他们不工作,但是你可能会再次试图让他们调试。

相反,要做“背景”工作,请使用AsyncTask或IntentService。

相关问题