很好,我有一个问题与我何时必须使用(或为什么)Activity.runOnUiThread()而不是Handler.post(Runnable)来更新,例如TextView或ProgressBar或失败有关,我必须使用Asyntask。
我一直在以下链接中寻找信息,但我仍然没有明确的答案。根据每种情况,最佳选择是什么?
Android:Activity.runOnUiThread 和 View.post 有什么区别?
runOnUiThread 与 Handler.post(可运行动作)?
Handler.post(Runnable r) 和 Activity.runOnUiThread(Runnable r) 的区别
Activity.runOnUiThread()
和之间的区别在于Handler.post(Runnable r)
,仅从您在主线程的视图(组件,无论是 TextView 还是其他)上执行runOnUiThread
的线程执行特定操作,即您的应用程序的组件。Handler.post(Runnable r) 的用途基本相同,但有一点不同,那就是使用 Handler.post()可以访问其他线程的组件或变量,而不仅仅是主线程。
runOnUiThread
如果你只想修改主线程的一个组件,我建议你使用它,
runOnUiThread()
因为这样你不会有问题。的一个示例用法
runOnUiThread()
是:的一个示例用法
Handler.post(Runnable r)
是:另一件事是使用
AsyncTask
,它有特定的方法可以在主线程中创建动作,但不能访问它的组件,例如,AsycnTask
可以使用它的方法创建一个带有进程栏的对话框并对其进行操作,但不能访问TextView
主线程。我举个例子:
我希望我对你的问题有所帮助。如果您有任何其他问题或不明白我正在解释的内容,请给我留言,我会为您澄清。
祝你好运!!